今天我在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/Contents/Home/jre/lib/ libinstrucment .jdk/Contents/Home/jre/lib/ libinstrucment .jdk/Contents/Home/jre/lib/ libinstrucment .jdk (0x10d19c4c0)dylib (0 x10ea194e0)。两者中的一个将被使用。哪一个是没有定义的。


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

运行控制台中的“objc:类JavaLaunchHelper在两个…中都实现了”警告

这是Mac上的Java中的旧bug,由IDE在启动应用程序时使用的Java代理触发。此消息是无害的,可以安全地忽略。Oracle开发者评论:

这个信息是良性的,这个问题没有负面影响 由于该类的两个副本是相同的(从精确的 相同的源)。这纯粹是一个表面问题。

该问题在Java 9和Java 8更新152中得到修复。

如果它以任何方式打扰你或影响你的应用程序(它不应该),IntelliJ IDEA的解决方案是通过添加IDEA .no禁用idea_rt启动器代理。Launcher =true into idea。属性(帮助|编辑自定义属性…)该解决方案将在下次重新启动IDE时生效。

不过,我不建议禁用IntelliJ IDEA启动代理。它用于诸如优雅关机(退出按钮)、线程转储、解决命令行过长超出操作系统限制的问题等功能。仅仅为了隐藏无害的信息而失去这些功能可能是不值得的,但这取决于您。

这发生在我安装Intellij IDEA 2017时,去菜单首选项->构建,执行,部署->调试器并禁用选项:“强制经典虚拟机用于JDK 1.3。X和更早”。这对我很管用。

我正在使用Intellij Idea 2017,我遇到了同样的问题。对我来说,解决问题的方法很简单

在intelliJ中关闭项目 File ->从现有资源中新建>项目 使用从外部模型导入(如果有的话) 再次打开项目。

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

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

to

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

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

【首选项】-【编辑器】-【常规】-【控制台】-【折叠包含】的控制台行 当然,你可以使用【Find Action…】(cmd+shift+A在mac上)并键入折叠控制台包含的行,以便更有效地导航。 add类JavaLaunchHelper在两者中都实现了

在我的电脑上,结果是:(LGTM:b)

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

PS:

截至2017年10月,该问题已在jdk1.9/jdk1.8.152/jdk1.7.161中得到解决 更多信息,请参阅@muttonUp的答案)

我找到了另一种解决办法:排除性欲工具。项目路径中的Dylib。为此,进入首选项->构建,执行和部署->编译器->排除-> +,并在错误消息中通过路径添加文件。

这是我几年前遇到的一个问题,我之前在Eclipse中通过从我的项目中排除1.7来解决这个问题,但在我最近安装的IntelliJ中又出现了这个问题。我通过:

卸载JDK: cd /图书馆/ Java / JavaVirtualMachines Sudo rm -rf jdk1.8.0_45.jdk (我有jdk1.8.0_45。jdk安装;显然,您应该卸载该文件夹中列出的Java版本。有问题的文件就在那个文件夹里,应该删除。) 下载并安装JDK 9。

请注意,下次创建新项目或打开现有项目时,需要将项目SDK设置为指向新的JDK安装。如果您在JavaVirtualMachines文件夹中安装了JDK 1.7(我相信我也遇到过这种情况),您可能仍然会看到这个错误,或者它会爬回来。