在Mac上设置Java Swing应用程序名称

我正在使用Java 1.6为Mac编写Java Swing应用程序。 我已经阅读了许多教程,指导您如何更好地将Java应用程序与OS X集成,但有一件事我无法工作。 我无法显示应用程序名称(Mac菜单栏中的第一个粗体菜单项)。 默认情况下,显示主类的完全限定类名,我无法更改它。

该网站说您必须设置以下属性:

System.setProperty("com.apple.mrj.application.apple.menu.about.name", "AppName"); 

但这不起作用(我运行10.6,所以可能属性名称改变了吗?)。

当我在XCode中创建一个新的Java项目(我通常使用Eclipse)时,这个名字神奇地被设置了! (它启动了一个可运行的锅炉板应用程序)我已经在XCode项目周围查看了这是如何完成的,但我无法理解它!

我的猜测是,如果你将Java应用程序包装在Mac * .app包中,它只设置应用程序名称,但是想知道是否有人知道答案。 谢谢。

编辑 :有趣的是,如果我将我的应用程序打包在一个可运行的JAR文件中,它会设置应用程序名称,但如果我从Eclipse运行它则不会。

在构建GUI之前,应在应用程序初始化期间执行以下操作:

 // take the menu bar off the jframe System.setProperty("apple.laf.useScreenMenuBar", "true"); // set the name of the application menu item System.setProperty("com.apple.mrj.application.apple.menu.about.name", "AppName"); // set the look and feel UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); 

UPDATE。 上面的代码适用于Java 1.5,此代码可能无法在1.6中使用

对于新的java,请参阅文档 :

  1. 使用-Xdock:name命令行属性: – Xdock:name=YourAppName
  2. 或者在信息属性列表文件(plist)中设置CFBundleName

在Mac 10.7.5上,以编程方式设置该属性适用于Java 1.6但不适用于Java 1.7