Stop Java Coffee Cup icon from appearing in the Dock on Mac OSX

JavaMacosHadoopDock

Java Problem Overview


After upgrading to OSX 10.8.4, background Java processes started placing a Java Cup icon in the Dock. It causes the currently active window to loose focus which is very annoying when running some script that forks many short running Java processes (headless). The file menu (top of the screen next to the apple symbol will show the name of the class file that Java is running, e.g. org.apache.hadoop.util.RunJar).

Since I'm not explicitly launching these Java commands, I've tried putting alias java="java -Djava.awt.headless=true" in .profile but this doesn't seem to help.

Has anyone run into this and know how to fix it?

Thank you.

Java Solutions


Solution 1 - Java

Like @EGHM said, it's -Dapple.awt.UIElement=true, but with no quotes. At least it works for me (OS X 10.7.5).

If you happen to be using Eclipse, you can add this JVM argument globally in Preferences → Installed JREs:

enter image description here

Solution 2 - Java

Like @EHGM and @Nelson pointed out, -Dapple.awt.UIElement=true needs to be added as an argument to the JVM.

You can set it globally for all java applications launched from the command line (or a shell) by adding it to the JAVA_TOOL_OPTIONS environment variable.

export JAVA_TOOL_OPTIONS="-Dapple.awt.UIElement=true"

You could add the export statement to your $HOME/.bashrc or whatever startup script relevant to the shell you're using.

Solution 3 - Java

Try -Dapple.awt.UIElement="true"

Solution 4 - Java

You can also put the statement into the project-level or global gradle.properties file

systemProp.apple.awt.UIElement=true

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionEugeneView Question on Stackoverflow
Solution 1 - JavaNelson MenezesView Answer on Stackoverflow
Solution 2 - JavaTuxdudeView Answer on Stackoverflow
Solution 3 - JavaEGHMView Answer on Stackoverflow
Solution 4 - JavaxinthinkView Answer on Stackoverflow