我正在使用Java 1.6为Mac编写Java Swing应用程序。我已经阅读了许多教程,指导您如何更好地将Java应用程序与OS X集成,但有一件事我无法工作。我无法显示应用程序名称(Mac菜单栏中的第一个粗体菜单项)。默认情况下,会显示主类的完全限定类名,我无法更改它。
This site表示您必须设置以下属性:
System.setProperty("com.apple.mrj.application.apple.menu.about.name", "AppName");
但这不起作用(我正在运行10.6,所以可能会更改属性名称?)。
当我在XCode中创建一个新的Java项目(我通常使用Eclipse)时,这个名字会以某种方式神奇地被设置! (它以一个可运行的锅炉板应用程序启动你)我已经在XCode项目周围查看了这是如何完成的,但我无法理解它!
我的猜测是,如果你将Java应用程序包装在Mac * .app包中,它只设置应用程序名称,但是想知道是否有人知道答案。感谢。
编辑:有趣的是,如果我将应用程序打包在可运行的JAR文件中,它会设置应用程序名称,但如果我从Eclipse运行它则不会。
答案 0 :(得分: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());
更新。 以上代码适用于Java 1.5,此代码可能无法在1.6
中使用对于新的java,请参阅documentation:
-Xdock:name
命令行属性: - Xdock:name=YourAppName
CFBundleName
答案 1 :(得分:5)
在Mac 10.7.5上,以编程方式设置该属性适用于Java 1.6但不适用于Java 1.7