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

在Mac上设置Java Swing应用程序名称,java,macos,swing,Java,Macos,Swing,我正在使用Java1.6为Mac编写一个JavaSwing应用程序。我已经阅读了许多教程,这些教程指导您如何更好地将Java应用程序与OS X集成,但有一件事我还没有开始工作。我无法显示应用程序名称(Mac菜单栏中第一个粗体菜单项)。默认情况下,将显示主类的完全限定类名,我无法更改它 表示必须设置以下属性: System.setProperty("com.apple.mrj.application.apple.menu.about.name", "AppName"); 但这不起作用(我运行的是

我正在使用Java1.6为Mac编写一个JavaSwing应用程序。我已经阅读了许多教程,这些教程指导您如何更好地将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());
更新。 上述代码在Java1.5中工作,但在1.6中可能无法工作

有关新的java应用程序,请参见:

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

  • 在Mac 10.7.5上,通过编程设置属性将适用于Java 1.6,但不适用于Java 1.7。

    在10.5中,该属性适用于我您是否运行Java 1.5?它似乎只在该版本中工作。是的,在调用
    UIManager.setLookAndFeel()
    和显示GUI之前,我正在设置属性。我运行的是Java1.6,所以我猜该属性不适用于该版本?添加一个
    -Xdock:name=AppName
    虚拟机参数有效,谢谢。@uthark请用一个更完整的示例来改进答案(项目符号1),例如-Xdock:name=“我的应用程序名”--如果不阅读developer.apple.com页面,这是不明显的。谢谢。文档链接给出了404。我在网站上找不到文档。@rockydgeekgod 7年前,当我回答时,它就在那里,更新了指向新位置的链接。我知道这更多的是一个评论,而不是一个答案,但我不知道如何(或没有足够的特权)向原始问题添加评论。