Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Programmatically setting the dock:name Java Mac OS X JVM property

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?

like image 466
ksullivan Avatar asked Mar 31 '10 14:03

ksullivan


2 Answers

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);
  }
}
like image 67
Matt Solnit Avatar answered Sep 18 '22 15:09

Matt Solnit


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

like image 22
Dilum Ranatunga Avatar answered Sep 21 '22 15:09

Dilum Ranatunga