我在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.

有人知道为什么打印此消息以及如何修复它吗?


当前回答

从http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html#jdk-7u21-oth-JPR安装Java 7u21 设置这些变量: 出口JAVA_HOME = /图书馆/ Java / Home / JavaVirtualMachines / jdk1.7.0_21.jdk /内容 导出路径= $ JAVA_HOME / bin: $路径 运行你的应用程序,玩得开心:)

其他回答

为了解决这个问题,我将JDK版本降级为1.7.0_21。然后我使用这个小bash脚本来更改我使用的版本。

function setjdk() {
  if [ $# -ne 0 ]; then
   removeFromPath '/System/Library/Frameworks/JavaVM.framework/Home/bin'
   if [ -n "${JAVA_HOME+x}" ]; then
    removeFromPath $JAVA_HOME
   fi
   export JAVA_HOME=`/usr/libexec/java_home -v $@`
   export PATH=$JAVA_HOME/bin:$PATH
  fi
 }

 function removeFromPath() {
  export PATH=$(echo $PATH | sed -E -e "s;:$1;;" -e "s;$1:?;;")
 }

在zshrc/bshrc文件中有了bash脚本之后,只需调用setJdk 1.7.0_21,就可以开始了。

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

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

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类在两者中都实现了。两者中的一个将被使用。哪个是未定义的

⚠️For JetBrains IntelliJ IDEA:去帮助->编辑自定义属性....如果它要求您创建该文件,则创建该文件。要禁用错误消息,请将以下内容粘贴到您创建的文件中:

idea_rt
idea.no.launcher=true

这将在IntelliJ重启时生效。

从http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html#jdk-7u21-oth-JPR安装Java 7u21 设置这些变量: 出口JAVA_HOME = /图书馆/ Java / Home / JavaVirtualMachines / jdk1.7.0_21.jdk /内容 导出路径= $ JAVA_HOME / bin: $路径 运行你的应用程序,玩得开心:)