2009-03-30 2 views
4

Я построил приложение Java, которое корректно выполняется из моей IDE (Netbeans). Я упаковал банку в комплект для Mac OS (Leopard). При запуске приложения из пакета или из оболочки я получаю эту ошибку:java.lang.NoSuchMethodError: java.util.Properties.load (huh? Why?)

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

Я использую Java 1.5.0_16.

Знаете ли вы, почему я получаю эту ошибку, когда выполняю банку с помощью оболочки. Знаете ли вы, почему я не получаю его, когда использую IDE?

Спасибо!

ответ

8

Вы используете Java 5, но Properties.load(Reader) был введен только на Java 6 (aka 1.6). Если это произойдет снова, проверьте JavaDocs (например, Properties JavaDoc в этом случае) и посмотрите на интересующего вас участника - он часто будет предоставлять версию, в которой он был введен (например, «Начиная с: 1.6» в этом случае) ,

Вам необходимо создать InputStream вместо Reader - или перейти на Java 6. Я подозреваю, что вы найдете NetBeans, используя Java 6, поэтому он работает там.

+0

Чтобы скомпилировать для старой версии, установите -classpath в соответствующий rt.jar, а также используйте -source и -target. –

0

Только читатель поддерживает свойства UTF-8. Нам нужно переписать этот метод сами.