我有一个小问题。最近在Mac上迁移过,我一直在拉着我的头发在网上搜索这个,但还没找到我正在寻找的东西。我想在系统菜单中设置应用程序名称,此时此功能不起作用(显示我的主要类名而不是我的应用程序名称)。我应该修改什么属性?
我已经使用正确的apple.laf属性成功地将我的菜单放在系统菜单栏中,但我还没有找到我需要的名称。
我的搜索引导我查看Info.plist文档,我对此一无所知。我试图制作一个只会改变应用程序显示名称的简单程序,但由于某种原因它没有用。帮助
答案 0 :(得分:3)
根据sun's documentation,您可以将名称作为java命令的命令行参数传递给虚拟机,-Xdock:name="{AppName}"
将{AppName}
替换为您想要显示为标题的{1}}菜单栏。
编辑: 我不相信你可以在实际的Java代码中设置它,但是正如Chuck所说,Apple确实有一个程序Jar Bundler,它旨在用你需要的Info.plist创建jar。根据它的user guide,你需要在属性窗格上设置Bundle Name属性以获得你想要的东西。
答案 1 :(得分:2)
尝试使用附带的Jar Bundler,它可以为您处理所有这些内容。如果你想看看任何特定功能是如何工作的,你可以检查Jar Bundler的输出。
答案 2 :(得分:0)
有两种方式:
在运行时之前任何GUI交互:
System.setProperty("com.apple.mrj.application.apple.menu.about.name", "myAppName!");
答案 3 :(得分:0)
设置任何建议的Java(在启动shell脚本中使用-D)属性对我来说都不起作用,因为它们仅适用于AWT& Swing GUI。即使是Mac特定的-Xdock:*
选项也无效。
使用此项目的工作是什么https://github.com/codecentric/NSMenuFX
在我的JavaFX Controller菜单中,我添加了以下代码段:
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);
}
}
现在无法使用此库设置菜单本身的粗体名称,但您可以在应用程序包的CFBundleDisplayName
中控制该设置Info.plist
。