3

少し問題があります。最近Macに移行したので、髪を引っ張ってこれについてWebを検索しましたが、正確に検索しているものが見つかりませんでした。システムメニューでアプリケーション名を設定したいのですが、現時点では機能しません(アプリ名の代わりにメインクラス名が表示されます)。どのプロパティを変更する必要がありますか?

正しいapple.lafプロパティを使用して、メニューをシステムメニューバーに正常に配置しましたが、名前に必要なものが見つかりません。

私の検索は私をInfo.plistドキュメントに導きました、それについて私は全く知識がありません。アプリの表示名だけを変更するシンプルなものを作ろうとしましたが、どういうわけかうまくいきませんでした。ヘルプ?

4

4 に答える 4

3

sunのドキュメントによると、名前をjavaコマンドのコマンドラインパラメーターとして仮想マシンに渡し、メニューバーにタイトルとして表示したいものに-Xdock:name="{AppName}"置き換えます。{AppName}

編集:これを実際のJavaコード自体に設定できるとは思いませんが、チャックが言ったように、Appleには必要なInfo.plistを使用してjarを作成するように設計されたプログラムJarBundlerがあります。そのユーザーガイドによると、必要なものを取得するには、プロパティペインで[バンドル名]プロパティを設定する必要があります。

于 2009-09-15T17:27:41.373 に答える
2

付属のJarBundlerを使用してみてください。これは、これらすべてを処理するためにあります。また、特定の機能がどのように機能するかを確認したい場合は、JarBundlerの出力を調べることができます。

于 2009-09-15T17:32:22.940 に答える
0

2つの方法があります:

  1. 呼び出すとき:java -Xdock:name = myAppName
  2. GUIインタラクションのの実行時:

    System.setProperty("com.apple.mrj.application.apple.menu.about.name", "myAppName!");
    
于 2012-06-26T06:06:50.343 に答える
0

提案されたJava(起動シェルスクリプトで-Dを使用)プロパティの設定は、AWTおよびSwing GUI専用であるため、機能しませんでした。Mac固有-Xdock:*のオプションでさえ機能しませんでした。

うまくいったのは、このプロジェクトを使用することですhttps://github.com/codecentric/NSMenuFX

メニューのJavaFXコントローラーに、次のスニペットを追加しました。

  public void initialize() {
    if ("Mac OS X".equals(System.getProperty("os.name"))) {
      final MenuToolkit tk = MenuToolkit.toolkit();
      final Menu defaultMacApplicationMenu = tk.createDefaultApplicationMenu("My App");
      tk.setApplicationMenu(defaultMacApplicationMenu);
    }
  }

これで、このライブラリを使用してメニュー自体の太字の名前を設定することはできませんが、アプリケーションバンドルのでその設定CFBundleDisplayNameを制御できます。Info.plist

于 2017-10-06T08:58:03.783 に答える