Class JavaLaunchHelper is implemented in two places
Asked Answered
B

7

310

Today I upgraded my Intellij Idea on macOS Sierra, and now, when I run apps in console I have this error:

objc[3648]: Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/bin/java (0x10d19c4c0) and /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/libinstrument.dylib (0x10ea194e0). One of the two will be used. Which one is undefined.

Blazonry answered 24/3, 2017 at 15:10 Comment(0)
G
496

You can find all the details here:

  • IDEA-170117 "objc: Class JavaLaunchHelper is implemented in both ..." warning in Run consoles

It's the old bug in Java on Mac that got triggered by the Java Agent being used by the IDE when starting the app. This message is harmless and is safe to ignore. Oracle developer's comment:

The message is benign, there is no negative impact from this problem since both copies of that class are identical (compiled from the exact same source). It is purely a cosmetic issue.

The problem is fixed in Java 9 and in Java 8 update 152.

If it annoys you or affects your apps in any way (it shouldn't), the workaround for IntelliJ IDEA is to disable idea_rt launcher agent by adding idea.no.launcher=true into idea.properties (Help | Edit Custom Properties...). The workaround will take effect on the next restart of the IDE.

I don't recommend disabling IntelliJ IDEA launcher agent, though. It's used for such features as graceful shutdown (Exit button), thread dumps, workarounds a problem with too long command line exceeding OS limits, etc. Losing these features just for the sake of hiding the harmless message is probably not worth it, but it's up to you.

Granophyre answered 24/3, 2017 at 15:18 Comment(10)
What does idea_rt do? Any reason not to disable it?Dimmick
It provides graceful exit, thread dumps, handles long classpath that can exceed OS limits, etc. I would not disable it, especially just for the reason of hiding a harmless message.Granophyre
I installed Java 8 update 152 and it resolves the issue as in the answer. Thank you.Howard
When will 152 be pushed through oracle java se?Apples
@4ntoine 2016.3 should not have this problem in Run mode, but if you are using a debugger or profiler or any other java agent, the same message will appear in any IntelliJ IDEA version (and in any other IDE or even in the terminal), since the issue in the JVM.Granophyre
i've checked i still have the problem in 2016.3.6 but i don't have it in 2016.3.5 (neither in run nor debug mode)Decurved
@Decurved does the command line have any -javaagent option when you start the app?Granophyre
@Granophyre thanks for solution. Link is not working, I installed it from jdk.java.net/8Frostbitten
I confirm that installing JDK 9 on Mac fixes the problemCarom
Installed IntelliJ CE 2018.2, running Java 8 update 191: the message is still there.Feaster
A
197

Since “this message is harmless”(see the @CrazyCoder's answer), a simple and safe workaround is that you can fold this buzzing message in console by IntelliJ IDEA settings:

  1. 【Preferences】- 【Editor】-【General】-【Console】- 【Fold console lines that contain】
    Of course, you can use 【Find Action...】(cmd+shift+A on mac) and type Fold console lines that contain so as to navigate more effectively.
  2. add Class JavaLaunchHelper is implemented in both

image

On my computer, It turns out: (LGTM :b )

image

And you can unfold the message to check it again:

image

PS:

As of October 2017, this issue is now resolved in jdk1.9/jdk1.8.152/jdk1.7.161
for more info, see the @muttonUp's answer)

Alaric answered 20/9, 2017 at 9:18 Comment(0)
A
13

I am using Intellij Idea 2017 and I got into the same problem. What solved the problem for me was to simply

  1. close the project in intelliJ
  2. File -> New -> project from existing resources
  3. use Import from external model (if any)
  4. open the project again.
Amend answered 8/6, 2017 at 22:58 Comment(3)
the classic close then open solution =))Orsay
I tried every solution provided as answers here, but only this solution worked for me. I suggest deleting .idea folder before re-importing.Foliole
This did not work for me in IDEA 2017.3.1 on macOS Sierra running Java 8 update 151. However upgrading to 152 fixed it after restarting IDEA and setting my project to use update 152.Mckenzie
E
1

This happened to me when I installed Intellij IDEA 2017, go to menu Preferences -> Build, Execution, Deployment -> Debugger and disable the option: "Force Classic VM for JDK 1.3.x and earlier". This works to me.

Electrometallurgy answered 1/4, 2017 at 0:26 Comment(4)
You may need also disable idea_rt launcher agent as CrazyCoder mentioned. adding idea.no.launcher=true into idea.properties (Help | Edit Custom Properties...). Make sure restart IDE after this.Electrometallurgy
Yes, the custom property workaround does work, your suggestion does nothing on my system. Have you tried your answer i.e. toggle the setting - I don't see how a pre JDK 1.3.x option can have any effect? I'm on Java 8.Howard
For me, I tried custom property at beginning, it's not working for me. then I found this disable JDK1.3.x solution. after restart IDE, everything works fine.Electrometallurgy
@DannyGuo as the issue is caused by any Java agent and in debug mode Java agent is used anyway for modern JVMs, this has fixed the problem for you in Debug mode only, but you will have the problem in Run mode when the launcher agent is enabled.Granophyre
C
0

Same error, I upgrade my Junit and resolve it

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

to

org.junit.jupiter:junit-jupiter-api:5.0.0
Cytoplast answered 18/9, 2017 at 2:13 Comment(0)
B
0

I have found the other workaround: to exclude libinstrument.dylib from project path. To do so, go to the Preferences -> Build, Execution and Deployment -> Compiler -> Excludes -> + and here add file by the path in error message.

Briquet answered 17/2, 2018 at 11:7 Comment(0)
T
-1

This was an issue for me years ago and I'd previously fixed it in Eclipse by excluding 1.7 from my projects, but it became an issue again for IntelliJ, which I recently installed. I fixed it by:

  1. Uninstalling the JDK:

    cd /Library/Java/JavaVirtualMachines
    sudo rm -rf jdk1.8.0_45.jdk
    

    (I had jdk1.8.0_45.jdk installed; obviously you should uninstall whichever java version is listed in that folder. The offending files are located in that folder and should be deleted.)

  2. Downloading and installing JDK 9.

Note that the next time you create a new project, or open an existing project, you will need to set the project SDK to point to the new JDK install. You also may still see this bug or have it creep back if you have JDK 1.7 installed in your JavaVirtualMachines folder (which is what I believe happened to me).

Tangerine answered 19/3, 2018 at 18:17 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.