繁体   English   中英

如何更改 Mac OS X 启动板中显示的 Java 应用程序名称

[英]How to change the Java application name shown in the Mac OS X launchpad

当我使用SWTJava编写的应用程序在OS XOS X ,无论是在Eclipse下还是从jar ,它在启动板中的名称都是“java”,如图所示。

启动板中显示错误的应用程序名称

在我的代码的开头我调用Display.setAppName("MyApp") ,菜单栏和菜单项中的应用程序名称是正确的,它显示MyAppAbout MyAppConfigure MyApp等。菜单项行为正常,我可以接收和处理相应的事件。 因此,问题仅与启动板中显示的应用程序名称有关。 有没有办法从代码中以编程方式设置要在启动板中显示的正确名称,而无需创建应用程序包?

PS 代码实际上是在 JVM 下运行的,JVM 是使用ProcessBuilder从我的代码中启动的:

  new ProcessBuilder("java -cp mypath MyClass my args").start();

一种递归,需要在启动应用程序之前以编程方式计算一些 jvm 选项和类路径。

您应该使用 jar 创建一个 macOS 应用程序包,您可以在其中将包显示名称放在包的Info.plist文件中。 Oracle ( http://docs.oracle.com/javase/7/ docs/technotes/guides/jweb/packagingAppsForMac.html )。

Apple 也记录了 Java 应用程序包的结构: https : //developer.apple.com/library/content/documentation/Java/Conceptual/Java14Development/03-JavaDeployment/JavaDeployment.html

对我有用的唯一答案是这里 简而言之:

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

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

换句话说,设置apple.awt.application.name并在创建 JFrame 之前进行。

PS 如果您尝试更改 Dock 应用程序标题,此命令可能会起作用:

java -Xdock:name=Alfabet

@米。 vokhm 我希望你已经尝试过以下链接

http://www.eclipse.org/articles/Article-Branding/branding-your-application.html

还要检查下面链接中的“3. 如何触发启动”

http://www.vogella.com/tutorials/EclipseLauncherFramework/article.html

在构建 GUI 之前,您应该在应用程序初始化期间执行以下操作:

// take the menu bar off the jframe
System.setProperty("apple.laf.useScreenMenuBar", "true");

// set the name of the application menu item
System.setProperty("com.apple.mrj.application.apple.menu.about.name", "AppName");

// set the look and feel
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

但以上代码在 Java 1.5 中有效,此代码在 1.6 中可能无效

对于新的 Java,请参阅文档

  1. 要么使用 -Xdock:name 命令行属性:-Xdock:name=YourAppName
  2. 或者在信息属性列表文件(plist)中设置CFBundleName

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM