2009-03-30 6 views
4

J'ai construit une application Java qui s'exécute correctement à partir de mon IDE (Netbeans). J'ai emballé le pot dans un paquet pour Mac OS (Leopard). Si je lance l'application à partir du faisceau ou de la coquille que je reçois cette erreur:java.lang.NoSuchMethodError: java.util.Properties.load (hein? Pourquoi?)

java.lang.NoSuchMethodError: java.util.Properties.load(Ljava/io/Reader;)V

J'utilise Java 1.5.0_16.

Savez-vous pourquoi j'obtiens cette erreur lorsque j'exécute le pot en utilisant shell. Savez-vous pourquoi je ne comprends pas quand j'utilise IDE?

Merci!

Répondre

8

Vous utilisez Java 5, mais Properties.load(Reader) a seulement été introduit en Java 6 (alias 1.6). Si cela arrive encore, vérifiez les JavaDocs (par exemple le Properties JavaDoc dans ce cas) et regardez le membre qui vous intéresse - il donnera souvent la version dans laquelle il a été introduit (par exemple "Depuis: 1.6" dans ce cas) .

Vous aurez besoin de créer un InputStream au lieu d'un Reader - ou de mettre à niveau vers Java 6. Je pense que NetBeans utilise Java 6, c'est pourquoi il fonctionne ici.

+0

Pour compiler une ancienne version, définissez -classpath sur un rt.jar approprié, tout en utilisant -source et -target. –

0

Seul le lecteur prend en charge les propriétés UTF-8. Nous devons réécrire cette méthode par nous-mêmes.