JavaLaunchHelper类是在两个地方实现的

今天,我在macOS Sierra上升级了我的Intellij Idea,现在,当我在控制台上运行应用程序时,出现此错误:

objc [3648]:类JavaLaunchHelper在/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/bin/java(0x10d19c4c0)和/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/目录/首页/ jre / lib / libinstrument.dylib(0x10ea194e0)。 其中一个将被使用。 哪一个是未定义的

你可以在这里find所有的细节:

  • IDEA-170117 “运行控制台”中的“objc:JavaLaunchHelper类实现在…”警告

这是在Mac上Java中的旧bug,由启动应用程序时由IDE使用的Java代理触发 。 这个信息是无害的,是可以忽略的。 Oracle开发人员的评论:

消息是良性的,这个问题没有负面影响,因为这个类的两个副本是相同的(从完全相同的源编译)。 这纯粹是一个美容问题。

这个问题在Java 9和Java 8更新152中得到解决 。

如果它惹恼了你或以任何方式影响你的应用程序(它不应该),IntelliJ IDEA的解决方法是通过将idea.no.launcher=true添加到idea.propertiesHelp | Edit Custom Properties... )。 该解决方法将在下次重新启动IDE时生效。

不过,我不build议禁用IntelliJ IDEA启动器代理。 它用于优雅的关机(退出button),线程转储,太长的命令行超过操作系统限制等问题的解决scheme等function。失去这些function只是为了隐藏无害消息可能是不值得的,但它是由你决定。

由于“此消息是无害的”(请参阅@ CrazyCoder的答案 ),一个简单而安全的解决方法是,您可以通过IntelliJ IDEA设置在控制台中折叠此嗡嗡声消息:

  1. 【首选项】 – 【编辑】 – 【常规】 – 【控制台】 – 【折叠控制台】
    当然,你也可以使用【查找动作】( cmd+shift+A ),然后键入Fold console lines that contain以便更有效地导航。
  2. 添加Class JavaLaunchHelper is implemented in both

图片

在我的电脑上,原来:(LGTM:b)

图片

你可以展开消息再次检查:

图片

PS:

截至2017年10月,这个问题现在已经在jdk1.9 / jdk1.8.152 / jdk1.7.161
欲了解更多信息,请参阅@ muttonUp的答案 )

我正在使用Intellij Idea 2017,并且遇到了同样的问题。 解决问题的方法就是简单地解决问题

  1. closures该项目在intelliJ
  2. 文件 – >新build – >从现有资源项目
  3. 使用从外部模型导入(如果有的话)
  4. 再次打开项目。

我在安装Intellij IDEA 2017时发生了这种情况,请转到菜单首选项 – >生成,执行,部署 – >debugging器,并禁用选项:“为JDK 1.3.x及更早版本强制传统VM”。 这对我有用。

同样的错误,我升级我的Junit并解决它

org.junit.jupiter:junit-jupiter-api:5.0.0-M6

org.junit.jupiter:junit-jupiter-api:5.0.0