2012-05-22 5 views
8

ho finora utilizzato il seguente codice per impostare il Nome dell'applicazione (in alto "Sistema" barra dei menu) sul mio Apple MacBook. (In realtà, penso di averlo copiato da StackOverflow.)Java/OS X Lion: Impostazione nome dell'applicazione smesso di funzionare con JDK1.7

Fondamentalmente, disporre di una classe AppLauncher separata che utilizza System.setProperty() per impostare il nome dell'applicazione prima di creare un nuovo Runnable per l'app stessa.

ha lavorato bene.

Tuttavia, da quando ho scaricato e iniziato a utilizzare JDK 1.7, la soluzione ha smesso di funzionare: nel menu ho ricevuto il nome della classe anziché il nome dell'app, proprio come prima ho trovato la soluzione. Ho provato a cercarlo su google, ma senza risultato.

Ecco il codice defunta che ha usato per lavorare sotto JDK 1.6, ridotto alle parti interessate:

public class AppLauncher { 
public static void main(String[] args) { 

    System.setProperty("apple.laf.useScreenMenuBar", "true"); 
    System.setProperty("com.apple.mrj.application.apple.menu.about.name", 
       "My Application"); 
    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); 

    javax.swing.SwingUtilities.invokeLater(new Runnable() { 
     public void run() { 
      new MainWindow(); 
     } 
    }); 
} 
} 

Grazie per i suggerimenti!

ETA: invocando con java -Dapple.laf.useScreenMenuBar = true funziona ancora. L'inserimento della proprietà in Info.plist potrebbe funzionare, ma non l'ho ancora provato.

+0

fortuna con '' -D' o Info.plist', mostrato [qui] (http://stackoverflow.com/a/8956715/230513)? Potrebbe non essere supportato in OpenJDK. – trashgod

+0

Ciao, sì il -D sembra fare il trucco. Terrò Info.plist nella parte posteriore della mia testa e provatelo una volta che ci sarò, grazie. –

+0

@trashgod: dovresti probabilmente aggiungerlo come risposta in modo che la domanda possa lasciare la lista "senza risposta". – wchargin

risposta

2

Sembra che l'impostazione della proprietà utilizzando -D risolve il problema.

java -Dapple.laf.useScreenMenuBar=true … 

Altri approcci sono menzionati in questo relativo answer.

1

non ho potuto ottenere l'Info.plist o approcci -D a lavorare (sto lavorando sulla distribuzione di un App JRuby, che potrebbe avere qualcosa a che fare con esso), ma per me passando il parametro -Xdock:name di cui al this article nella sezione "Altri aggiustamenti con la barra dei menu" sembrava funzionare alla grande.

Esempio: -Xdock:name="My Application"

Problemi correlati