Domanda

Ho un leggero problema. Dopo essere migrato di recente su Mac, mi sono tirato i capelli e ho cercato su Internet questo, ma non ho trovato quello che stavo cercando. Voglio impostare il nome dell'applicazione nel menu di sistema, che al momento non funziona (viene visualizzato il nome della mia classe principale anziché il nome della mia app). Quale proprietà devo modificare?

Ho inserito correttamente il mio menu nella barra dei menu di sistema usando la proprietà apple.laf corretta, ma non ho trovato ciò di cui avevo bisogno per il nome.

La mia ricerca mi ha portato a documenti Info.plist, di cui non ho alcuna conoscenza. Ho provato a crearne uno semplice che cambierebbe solo il nome visualizzato dell'app, ma per qualche motivo non ha funzionato. Aiuto?

Altri suggerimenti

Secondo documentazione di sun passeresti il ??nome nella virtual macchina come parametro della riga di comando per il comando java con -Xdock: name = " {NomeApp} " sostituendo {NomeApp} con quello che si desidera visualizzare come titolo nella barra dei menu.

Modifica: Non credo che sia possibile impostarlo nel codice Java vero e proprio, ma come ha detto Chuck, Apple ha un programma Jar Bundler progettato per creare il vaso con l'Info.plist di cui hai bisogno. Secondo la guida per l'utente per è necessario impostare la proprietà Nome pacchetto nel riquadro delle proprietà per ottenere ciò che si desidera.

Esistono due modi:

  1. quando chiami: java -Xdock: name = myAppName
  2. In fase di esecuzione prima di qualsiasi interaccione della GUI:

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

Le impostazioni di qualsiasi delle proprietà Java proposte (con -D nello script della shell di avvio) non hanno funzionato per me, perché sono solo per AWT & amp; GUI Swing. Anche le opzioni -Xdock: * specifiche per Mac non funzionavano.

Ciò che ha funzionato è stato utilizzare questo progetto https://github.com/codecentric/NSMenuFX

Nel mio controller JavaFX per il menu ho aggiunto il seguente frammento:

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

Ora il nome in grassetto del menu stesso non può essere impostato utilizzando questa libreria, ma puoi controllare l'impostazione CFBundleDisplayName nel Info.plist del tuo pacchetto di applicazioni.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top