类JavaLaunchHelper在两者中都实现了。将使用两者之一。哪一个是未定义的

2022-08-31 09:03:53

在 Mac OS X 上的 Eclipse Kepler 上有一个简单的 Google App Engine Web Application Project,Java 版本为 “1.7.0_45”

遇到以下情况:

objc[5398]: Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/bin/java and /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/jre/lib/libinstrument.dylib. One of the two will be used. Which one is undefined.

当我尝试在本地主机上作为Web应用程序运行时

可能与以下问题有关:

https://code.google.com/p/googleappengine/issues/detail?id=10046

任何帮助都是有用的。


答案 1

根据我在网上发现的情况,这是JDK 1.7.0_45中引入的一个错误。它似乎也存在于 JDK 1.7.0_60 中。Oracle网站上的一份错误报告指出,虽然有修复程序,但在JDK发布之前已被删除。我不知道为什么这个修复程序被删除了,但它证实了我们已经怀疑的事情 - JDK仍然坏了。

bug报告声称该错误是良性的,不应该导致任何运行时问题,尽管其中一条评论不同意这一点。根据我自己的经验,尽管看到消息,但我能够使用JDK 1.7.0_60毫无问题地工作。

如果此问题导致严重问题,我建议采取以下几点建议:

  • 恢复到 JDK 1.7.0_25,直到将修复程序添加到 JDK。

  • 请留意错误报告,以便您了解正在解决此问题的任何工作。甚至可以添加您自己的评论,以便Oracle了解问题的严重性。

  • 尝试 JDK 早期版本发布。其中之一可能会解决您的问题。

有关在 Mac OS X 上安装 JDK 的说明,请参阅适用于 Mac OS X 的 JDK 7 安装。它还包含有关删除 JDK 的说明。


答案 2
  1. 从这里安装 Java 7u21:http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html#jdk-7u21-oth-JPR

  2. 设置以下变量:

    export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_21.jdk/Contents/Home"
    export PATH=$JAVA_HOME/bin:$PATH
    
  3. 运行你的应用和有趣的:)

(次要更新:将变量值放在引号中)


推荐