JavaLaunchHelper类在... libinstrument.dylib中实现。将使用两者之一。哪一个未定义

时间:2013-09-13 20:19:46

标签: java eclipse macos jvm jvm-hotspot

我升级到 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.

有谁知道为什么会打印此邮件以及如何解决此问题?

12 个答案:

答案 0 :(得分:170)

⚠️对于JetBrains IntelliJ IDEA :转到Help -> Edit Custom Properties...。如果要求您创建文件,请创建该文件。要禁用错误消息,请将以下内容粘贴到您创建的文件中:

idea_rt
idea.no.launcher=true

这将在重新启动IntelliJ时生效。

答案 1 :(得分:116)

截至2017年10月,此问题现已已解决

答案 2 :(得分:18)

  1. http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html#jdk-7u21-oth-JPR

  2. 安装Java 7u21
  3. 设置这些变量:

    export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_21.jdk/Contents/Home
    export PATH=$JAVA_HOME/bin:$PATH
    
  4. 运行您的应用并享受乐趣:)

答案 3 :(得分:11)

将Pich @ Lichtamberg的评论复制到gotoalberto的回答

也适用于Java 1.8:

# in ~/.zshrc and ~/.bashrc

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home 
export PATH=$JAVA_HOME/bin:$PATH 

这解决了我在java 8上的问题。

答案 4 :(得分:5)

不确定这是否是问题的原因,但我在安装 JVM Monitor 后才遇到此问题。

卸载JVM Monitor解决了这个问题。

答案 5 :(得分:4)

正如其他答案详细说明,这是JDK中的一个错误(最高为u45),将在JDK7u60中修复 - 虽然还没有,但您可以从以下网址下载b01:https://jdk7.java.net/download.html

它是测试版,但为我解决了这个问题。

答案 6 :(得分:2)

https://groups.google.com/forum/#!topic/google-appengine-stackoverflow/QZGJg2tlfA4

从我在网上找到的内容来看,这是JDK 1.7.0_45中引入的一个错误。我已经读过它将在Java的下一个版本中修复,但它还没有出来。据说,它在1.7.0_60b01修复,但我找不到下载的地方,1.7.0_60b02重新介绍了这个bug。

我设法通过恢复到JDK 1.7.0_25来解决问题。可能不是你想要的解决方案,但这是我能够让它发挥作用的唯一方法。不要忘记在安装JDK后在Eclipse中添加JDK 1.7.0_25。

请不要直接回复此电子邮件,但请转到StackOverflow: Class JavaLaunchHelper is implemented in both. One of the two will be used. Which one is undefined

答案 7 :(得分:1)

要解决此问题,我将降级为JDK version 1.7.0_21。然后我用this小bash脚本来改变我使用的版本。

setJdk 1.7.0_21

在zshrc / bshrc文件中有bash脚本之后,只需拨打tooltip即可开始使用。

答案 8 :(得分:0)

好吧,经过一番挣扎,对我有用的是完全删除当前的JDK,described here

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,它是从here下载的。

现在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)

答案 9 :(得分:0)

2019年7月

OSX Mojave 10.14.5(18F132) IntelliJ 2019-1社区版。它设置了idea.properties文件。我还配置了指向/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home /

的JAVA_HOME

自定义IntelliJ IDEA属性

idea_rt idea.no.launcher = true

答案 10 :(得分:-2)

如果您正在使用IntelliJ& Mac只是去项目结构 - > SDK并确保列出了Java,但它指向了

/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home

而非用户回家...

答案 11 :(得分:-3)

jdk-7u80-macosx-x64.dmg解决了这个问题。