我已经构建了一个可以从我的IDE(Netbeans)正确执行的Java应用程序。 我已经将jar打包成了适用于Mac OS(Leopard)的软件包。如果我从bundle或shell运行应用程序,我会收到此错误:
java.lang.NoSuchMethodError:java.util.Properties.load(Ljava / io / Reader;)V
我正在使用java 1.5.0_16。
你知道为什么我在使用shell执行jar时会出现这个错误。 你知道为什么我在使用IDE时没有得到它吗?
谢谢!
答案 0 :(得分:8)
您使用的是Java 5,但Properties.load(Reader)
仅在Java 6(又名1.6)中引入。如果再次发生这种情况,请检查JavaDocs(例如本例中的Properties
JavaDoc)并查看您感兴趣的成员 - 它通常会给出它所引入的版本(例如“Since:1.6”)在这种情况下)。
您需要创建InputStream
而不是Reader
- 或升级到Java 6.我怀疑您会发现NetBeans正在使用Java 6,这就是它在那里工作的原因。< / p>
答案 1 :(得分:0)
只有阅读器支持UTF-8属性。我们需要自己重写这种方法。