2009-09-15 51 views
3

我有一个小问题。最近在Mac上迁移后,我一直在拉我的头发,并在网上搜索这件事,但没有找到我正在寻找的东西。我想在系统菜单中设置应用程序名称,此时不起作用(我的主类名称显示而不是我的应用程序名称)。我应该修改什么样的属性?Mac OSX系统菜单名称w/Java?

我已经成功地使用正确的apple.laf属性将我的菜单放置在系统菜单栏中,但是我没有找到我需要的名称。

我的搜索引导我到Info.plist文件,对此我没有任何知识。我试图做一个简单的,只会改变应用程序的显示名称,但由于某种原因,它没有奏效。帮帮我?

回答

2

尝试使用包含的Jar Bundler,这是为您处理所有这些东西。如果你想看看有什么特别的功能,你可以检查Jar Bundler的输出。

3

根据sun's documentation你会通过名称到虚拟机作为命令行参数到java命令-Xdock:name="{AppName}"你希望出现在菜单栏中的标题是什么替代{AppName}

编辑: 我不认为你可以在实际的Java代码本身中设置它,但正如Chuck所说,Apple确实有一个程序Jar Bundler,它被设计为用你需要的Info.plist创建jar。根据user guide,你需要在属性面板上设置Bundle Name属性来获得你想要的。

+0

我正在寻找一种从代码中实现它的方法,这并不意味着摆弄那种东西。 – 2009-09-15 17:31:18

0

有两种方式:

  1. 当你打电话:JAVA -Xdock:名称= myAppName
  2. 在运行时间之前的任何GUI interaccion:

    System.setProperty("com.apple.mrj.application.apple.menu.about.name", "myAppName!"); 
    
0

设置任何建议的Java(在启动shell脚本中使用-D)属性对我来说都不起作用,因为它们是唯一的AWT & Swing GUI。即使Mac特定的-Xdock:*选项也没有工作。

什么做的工作是使用该项目https://github.com/codecentric/NSMenuFX

在我的JavaFX控制器菜单添加以下代码片段:

public void initialize() { 
    if ("Mac OS X".equals(System.getProperty("os.name"))) { 
     final MenuToolkit tk = MenuToolkit.toolkit(); 
     final Menu defaultMacApplicationMenu = tk.createDefaultApplicationMenu("My App"); 
     tk.setApplicationMenu(defaultMacApplicationMenu); 
    } 
    } 

现在菜单本身的大胆名称不能被设置使用这个库,但是您可以在应用程序包的Info.plist中控制该设置CFBundleDisplayName

+0

最后一个问题通常应该由javapackager自动处理。 – mipa 2017-10-06 11:38:42