Java OS X Lion Set应用程序名称不起作用

ale*_*oot 29 java macos swing

我正在尝试将显示的应用程序名称更改为OS X的菜单栏,但我无法成功.我已尝试将设置作为main方法中的第一个语句,使用以下代码:

System.setProperty("apple.laf.useScreenMenuBar", "true");
System.setProperty("com.apple.mrj.application.apple.menu.about.name", "Alessio");
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
Run Code Online (Sandbox Code Playgroud)

但它不起作用,在菜单栏中显示主要:

截图

我在Mac OS X Lion(10.7.2)上.

有没有办法在菜单栏中更改应用程序名称?如果是这样,怎么样?

and*_*otn 20

使用JDK8,您可以设置apple.awt.application.name属性以影响"应用程序"菜单名称.

但是,Martijn Courteaux警告您必须在加载任何AWT类之前执行此操作仍然适用.main()如果它存在于子类中,则在方法运行之前将加载AWT类JFrame.

参考:

http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/file/5c1d06cd7d7b/src/macosx/native/sun/osxapp/NSApplicationAWT.m#l157

  • 适用于我,MacOSX 10.10 Yosemite,Oracle JDK 8 (2认同)
  • 适用于我的 MacOS 10.13 High Sierra (2认同)

Dan*_*ker 10

显然,在命令行中添加以下选项时,可以添加以下内容:

-Xdock:NAME = "阿莱西奥"

虽然com.apple.mrj.application.apple.menu.about.name是正确的属性名称,但我认为你将设置得太晚了.您是否在命令行上尝试过:

-Dcom.apple.mrj.application.apple.menu.about.name =阿莱西奥

有关编写适用于OS X的Java应用程序的更多信息,请访问:http://www.oracle.com/technetwork/articles/javase/javatomac-140486.html

也许值得看看这样的东西:http: //launch4j.sourceforge.net/

  • 它仅适用于:-Xdock:name ="Alessio". (3认同)

Mar*_*aux 7

我不确定这是否适用于OS X Lion,但我是Mountain Lion.

经过一些测试,我的结论是,当且仅当你不做任何事情时,你可以使用旧的方法

  • java.awt.Toolkit
  • 设置外观和感觉

设置应用名称之前.

使用Toolkit的一些事情是:(随意编辑此答案并添加项目)

  • 加载java.awt.Font(@see的静态初始值设定项)
  • 获取屏幕分辨率.
  • 加载扩展JFrame的类(例如,如果类包含您的main方法)