簡體   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