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

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

我的搜索引导我查看Info.plist文档,我对此一无所知。我试图制作一个只会改变应用程序显示名称的简单程序,但由于某种原因它没有用。帮助

有帮助吗?

解决方案

尝试使用随附的 Jar Bundler ,这是为你处理所有这些东西。如果你想看看任何特定功能是如何工作的,你可以检查Jar Bundler的输出。

其他提示

根据 sun的文档,您可以将名称传递给虚拟machine作为java命令的命令行参数,其中 -Xdock:name =" {AppName}" {AppName} 替换为您想要显示为标题的内容在菜单栏中。

编辑: 我不相信你可以在实际的Java代码中设置它,但是正如Chuck所说,Apple确实有一个程序Jar Bundler,它旨在用你需要的Info.plist创建jar。根据用户指南它,您需要在属性窗格上设置Bundle Name属性以获得所需的内容。

有两种方式:

  1. 当你致电:java -Xdock:name = myAppName
  2. 在运行时之前任何GUI交互:

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

设置任何建议的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);
    }
  }

现在无法使用此库设置菜单本身的粗体名称,但您可以在应用程序包的 Info.plist 中控制 CFBundleDisplayName 的设置。 / p>

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top