2010-07-01 137 views
17

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

This site说,你必须设置以下属性:(?我运行10.6,所以也许属性名称更改)

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

但是,这并不工作。

当我在XCode中创建一个新的Java项目时(我通常使用Eclipse),该名称以某种方式神奇地被设置! (它可以启动一个可运行的锅炉应用程序)我已经查看了XCode项目的所有工作,但我无法弄清楚它!

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

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

+0

该属性为我工作在10.5 – akf 2010-07-01 02:04:03

+0

您是否正在运行Java 1.5?它似乎只适用于该版本。 – Michael 2010-07-01 13:52:35

回答

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

  1. 要么使用-Xdock:name命令行属性: - Xdock:name=YourAppName
  2. 还是在信息属性设置CFBundleName列表文件(plist中)
+1

是的,我在调用'UIManager.setLookAndFeel()'之前设置属性,然后显示我的GUI。我正在运行Java 1.6,所以我猜该属性不适用于该版本? *添加'-Xdock:name = AppName'虚拟参数工作*,谢谢。 – Michael 2010-07-01 13:49:12

+0

+1版本问题解决方案!谢谢! – 11684 2012-05-05 11:02:16

+0

@uthark请使用更完整的示例(如-Xdock:name =“我的应用程序名称”)来改进答案(第1项) - 如果没有阅读developer.apple.com页面,则不太明显。谢谢。 – djb 2016-02-20 13:20:54

6

在Mac 10.7.5,编程设置属性与Java 1.6工作,但不与Java 1.7

+0

我知道这是比评论更多的评论,但不知道如何(或者没有足够的特权)给原始问题添加评论。 – PeterVermont 2013-01-05 18:36:02

相关问题