返回
MacOS X Java 升级后如何解决 `Class JavaLaunchHelper is implemented in both` 错误?
java
2024-03-07 06:57:52
JavaLaunchHelper 类冲突:MacOS X Java 升级后的疑难解答
问题:
在 MacOS X 上将 Java 升级到 7u40 后,启动应用程序时,控制台可能会出现以下错误消息:
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.
原因:
此错误表明 JavaLaunchHelper
类在两个不同的库中同时实现:/Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home/bin/java
和 /Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home/jre/lib/libinstrument.dylib
。系统在检测到同一类的多个实现时会发出此消息。
解决办法:
明确指定要使用的库是一种解决办法。为此,可以在 /Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home/bin/java
中添加以下标志:
-Djava.library.path=/Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home/jre/lib
步骤:
- 打开终端。
- 导航到
/Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home/bin
目录。 - 使用文本编辑器打开
java
文件。 - 在文件开头添加标志:
-Djava.library.path=/Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home/jre/lib
- 保存并关闭文件。
- 重新启动应用程序。
其他注意事项:
- 使用正确的 Java 版本和路径。
- 如果问题仍然存在,请重新安装 Java。
- 尝试将 Eclipse 更新到最新版本。
结论:
通过遵循这些步骤,可以解决 Class JavaLaunchHelper is implemented in both
错误消息,并在 MacOS X 上顺利运行应用程序。
常见问题解答:
- 为什么会出现这个错误?
- 因为
JavaLaunchHelper
类在两个不同的库中同时实现。
- 因为
- 如何解决这个问题?
- 添加标志
-Djava.library.path=/Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home/jre/lib
到/Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home/bin/java
文件中。
- 添加标志
- 为什么需要重新安装 Java?
- 如果其他步骤不起作用,重新安装 Java 可以修复潜在的问题。
- 如何更新 Eclipse?
- 打开 Eclipse,转到 "Help" 菜单,然后单击 "Check for Updates"。
- 我可以忽略这个错误吗?
- 可以,但可能会导致应用程序不稳定或崩溃。