views:

406

answers:

2

Is there a programatic alternative to setting the dock:name Java Mac OS X property by doing

java -Xdock:name="My App Name" -jar myapp.jar

, or is this the only way to set the dock:name property?

+1  A: 

The Apple extensions are documented here: http://developer.apple.com/mac/library/documentation/Java/Reference/1.5.0/appledoc/api/overview-summary.html

I looked at com.apple.eawt.Application, which gives you access to the icon and menus... but not title, unfortunately.

I am guessing the prescribed approach is to roll out your own App Bundle, as detailed here: http://developer.apple.com/Mac/library/documentation/Java/Conceptual/Java14Development/03-JavaDeployment/JavaDeployment.html

Dilum Ranatunga
+1  A: 

It's been a while, but I believe you need to do the following (this is assuming you're using Swing):

  1. Put your main() method in a separate class from the JFrame.
  2. Before creating the JFrame, set the "com.apple.mrj.application.apple.menu.about.name" system property.

For example:

public class Launcher {
  public static void main(String[] args) {
    System.setProperty("com.apple.mrj.application.apple.menu.about.name", "Hello World!");
    JFrame jframe = new MyJFrame();
    jframe.setVisible(true);
  }
}
Matt Solnit
Hah -- looks like I answered this question a while back: http://stackoverflow.com/questions/307024/native-swing-menu-bar-support-for-macos-x-in-java
Matt Solnit