[英]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.