Java OS X Lion Set application name doesn't work
Using JDK8, you can set the apple.awt.application.name
property to affect the Application menu name.
However, Martijn Courteaux’s warning still applies: you must do this before any AWT classes are loaded. And AWT classes will be loaded before your main()
method runs if it lives in a subclass of JFrame
.
Reference:
http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/file/5c1d06cd7d7b/src/macosx/native/sun/osxapp/NSApplicationAWT.m#l157
Apparently, you can do it adding the following when you add the following options to the command line:
-Xdock:name="Alessio"
While com.apple.mrj.application.apple.menu.about.name is the right property name, I think you'll be setting it too late. Have you tried it on the command line as:
-Dcom.apple.mrj.application.apple.menu.about.name=Alessio
For more information about writing Java Apps for OS X: http://www.oracle.com/technetwork/articles/javase/javatomac-140486.html
It may also be worth looking at something like this: http://launch4j.sourceforge.net/
I'm not sure if this also works for OS X Lion, but I'm on Mountain Lion.
After some testing, my conclusion is that you can use the old approach if and only if you don't do anything with
java.awt.Toolkit
- Setting look and feel
before setting the app name.
Some things that use Toolkit are: (Feel free to edit this answer and add items)
- Loading a
java.awt.Font
(@see static initializer of Font) - Acquiring the Screen resolution.
- Loading a class that extends JFrame (such as if the class contains your
main
method)