Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mac OSX系统菜单名w/Java?_Java_Macos_Plist - Fatal编程技术网

Mac OSX系统菜单名w/Java?

Mac OSX系统菜单名w/Java?,java,macos,plist,Java,Macos,Plist,我有个小问题。最近我在Mac上进行了迁移,我一直在发牢骚,在网上搜索这方面的信息,但还没有找到我真正要搜索的内容。我想在“系统”菜单中设置应用程序名,但该菜单目前不起作用(显示的是我的主类名,而不是我的应用程序名)。我应该修改什么属性 我已经使用正确的apple.laf属性成功地将我的菜单放置在系统菜单栏中,但是我还没有找到我需要的名称 我搜索到Info.plist文档,对此我一无所知。我试着做一个简单的,只会改变应用程序的显示名称,但由于某种原因,它没有工作。帮助?根据,您可以将名称作为jav

我有个小问题。最近我在Mac上进行了迁移,我一直在发牢骚,在网上搜索这方面的信息,但还没有找到我真正要搜索的内容。我想在“系统”菜单中设置应用程序名,但该菜单目前不起作用(显示的是我的主类名,而不是我的应用程序名)。我应该修改什么属性

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

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

根据,您可以将名称作为java命令的命令行参数传递到虚拟机中,并使用
-Xdock:name=“{AppName}”
替换
{AppName}
,将其显示为菜单栏中的标题

编辑: 我不相信你可以在实际的Java代码中设置它,但是正如Chuck所说,苹果有一个程序Jar绑定器,它被设计成使用你需要的Info.plist创建Jar。根据for it的说明,您需要在“属性”窗格上设置Bundle Name属性以获得所需的内容。

尝试使用included属性,它可以为您处理所有这些内容。如果您想了解任何特定功能的工作原理,可以检查Jar Bundler的输出。

有两种方法:

  • 当您调用:java-Xdock:name=myAppName时
  • 在任何GUI交互之前的运行时

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

  • 设置任何建议的Java(在启动shell脚本中使用-D)属性对我都不起作用,因为它们只适用于AWT和Swing GUI。甚至Mac特有的
    -Xdock:
    选项也不起作用

    你在使用这个项目时做了什么

    在菜单的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

    我正在寻找一种从代码中实现它的方法,这并不意味着要摆弄这类东西。最后一个问题通常应该由javapackager自动处理。