Question

J'ai un léger problème. Ayant récemment migré sur Mac, je me suis tiré les cheveux et j'ai cherché sur le Web à ce sujet, mais je n'ai pas trouvé exactement ce que je cherchais. Je souhaite définir le nom de l'application dans le menu système, ce qui ne fonctionne pas pour le moment (le nom de ma classe principale est affiché à la place de mon nom d'application). Quelle propriété dois-je modifier?

J'ai correctement placé mon menu dans la barre de menus du système en utilisant la propriété apple.laf appropriée, mais je n'ai pas trouvé ce dont j'avais besoin pour le nom.

Ma recherche m'a conduit à des documents Info.plist, sur lesquels je n'ai aucune connaissance. J'ai essayé d'en créer un simple qui ne changerait que le nom d'affichage de l'application, mais pour une raison quelconque, cela n'a pas fonctionné. Aide?

Était-ce utile?

La solution

Essayez d’utiliser le Jar Bundler , qui est là pour gérer tout ça pour toi. Et si vous souhaitez voir le fonctionnement d’une fonctionnalité particulière, vous pouvez inspecter la sortie de Jar Bundler.

Autres conseils

Selon la documentation de sun , vous transmettriez le nom à la machine virtuelle. machine en tant que paramètre de ligne de commande de la commande java avec -Xdock: name = " {AppName} " en remplaçant {AppName} par ce que vous voulez voir apparaître comme titre dans la barre de menus.

Modifier: Je ne crois pas que vous puissiez définir cela dans le code Java lui-même, mais comme Chuck l'a dit, Apple propose un programme Jar Bundler conçu pour créer le fichier jar avec le fichier Info.plist dont vous avez besoin. Selon le manuel de l'utilisateur pour Pour cela, vous devez définir la propriété Bundle Name dans le volet des propriétés pour obtenir ce que vous voulez.

Il y a deux façons:

  1. lorsque vous appelez: java -Xdock: name = myAppName
  2. Au moment de l'exécution avant toute interaccion de l'interface graphique:

    System.setProperty("com.apple.mrj.application.apple.menu.about.name", "myAppName!");
    

La configuration des propriétés Java proposées (avec -D dans le script de shell de lancement) n'a pas fonctionné pour moi, car elles ne concernent que AWT & amp; Balancer des interfaces graphiques. Même les options -Xdock: * spécifiques au Mac ne fonctionnaient pas.

Qu'est-ce qui a fonctionné avec ce projet https://github.com/codecentric/NSMenuFX

Dans mon contrôleur JavaFX pour le menu, j'ai ajouté le fragment de code suivant:

  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);
    }
  }

Le nom en gras du menu lui-même ne peut pas être défini à l'aide de cette bibliothèque, mais vous pouvez contrôler ce paramètre CFBundleDisplayName dans le Info.plist de votre lot d'applications.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top