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

Mic*_*ael 17 java macos swing

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

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

System.setProperty("com.apple.mrj.application.apple.menu.about.name", "AppName");
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

uth*_*ark 29

在构建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());
Run Code Online (Sandbox Code Playgroud)

UPDATE.以上代码适用于Java 1.5,此代码可能无法在1.6中使用

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

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


Pet*_*ont 5

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