[英]How to change the Java application name shown in the Mac OS X launchpad
当我使用SWT
用Java
编写的应用程序在OS X
下OS X
,无论是在Eclipse
下还是从jar
,它在启动板中的名称都是“java”,如图所示。
在我的代码的开头我调用Display.setAppName("MyApp")
,菜单栏和菜单项中的应用程序名称是正确的,它显示MyApp
、 About MyApp
、 Configure 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,请参阅文档:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.