我在MacOS X上升级到最新的Java 7u40,并在使用Eclipse启动应用程序时开始在控制台上收到以下消息。该应用程序工作得很好,但我想找出问题的原因,并希望能修复它。
objc[10012]: Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home/bin/java and /Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home/jre/lib/libinstrument.dylib. One of the two will be used. Which one is undefined.
有人知道为什么打印此消息以及如何修复它吗?
https://groups.google.com/forum/ !主题/ google-appengine-stackoverflow / QZGJg2tlfA4
根据我在网上的发现,这是JDK 1.7.0_45中引入的一个错误。我听说下一个Java版本会修复这个问题,但是现在还没有。据说,它在1.7.0_60b01中被修复了,但我找不到在哪里下载它,1.7.0_60b02重新引入了这个错误。
我设法通过恢复到JDK 1.7.0_25来解决这个问题。也许不是你想要的解决方案,但这是我能让它工作的唯一方法。不要忘记在安装JDK后在Eclipse中添加JDK 1.7.0_25。
请不要直接回复这封邮件,而是去StackOverflow:
JavaLaunchHelper类在两者中都实现了。两者中的一个将被使用。哪个是未定义的
好吧,经过一番挣扎,对我来说有效的方法是完全删除当前的JDK,如下所述:
sudo rm -rf /Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk
sudo rm -rf /Library/PreferencePanes/JavaControlPanel.prefPane
sudo rm -rf /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin
sudo rm -rf /Library/LaunchAgents/com.oracle.java.Java-Updater.plist
sudo rm -rf /Library/PrivilegedHelperTools/com.oracle.java.JavaUpdateHelper
sudo rm -rf /Library/LaunchDaemons/com.oracle.java.JavaUpdateHelper.plist
sudo rm -rf /Library/Preferences/com.oracle.java.Helper-Tool.plist
然后安装1.7.0_21,从这里下载。
现在java -version提示:
java version "1.7.0_21"
Java(TM) SE Runtime Environment (build 1.7.0_21-b12)
Java HotSpot(TM) 64-Bit Server VM (build 23.21-b01, mixed mode)