2012-05-22 15 views
8

Hasta ahora he utilizado el siguiente código para configurar el nombre de la aplicación (en la barra de menú "Sistema" superior) en mi Apple MacBook. (En realidad, creo que copié esto de stackoverflow.)Java/OS X Lion: configuración del nombre de la aplicación dejó de funcionar con JDK1.7

Básicamente, tiene una clase de AppLauncher independiente que usa System.setProperty() para establecer el nombre de la aplicación antes de crear un Runnable nuevo para la aplicación.

Funcionó bien.

Sin embargo, desde que descargué y comencé a usar JDK 1.7, la solución dejó de funcionar. Obtengo el nombre de la clase en lugar del nombre de la aplicación en el menú, justo antes de encontrar esa solución. Intenté buscar en Google, pero fue en vano.

Este es el código desaparecida que solía trabajar bajo JDK 1.6, reducida a las partes pertinentes:

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

Gracias por las sugerencias!

ETA: invocar con java -Dapple.laf.useScreenMenuBar = verdadero todavía funciona. Convertir la propiedad en Info.plist podría funcionar, pero aún no lo he intentado.

+0

suerte con '-D' o' Info.plist', mostrado [aquí] (http://stackoverflow.com/a/8956715/230513)? Es posible que no esté soportado en OpenJDK. – trashgod

+0

Hola, sí, el -D parece hacer el truco. Mantendré Info.plist en la parte posterior de mi cabeza y lo intentaré una vez que esté allí, gracias. –

+0

@trashgod: probablemente debería agregarlo como respuesta para que la pregunta pueda salir de la lista "sin respuesta". – wchargin

Respuesta

2

Parece que establecer la propiedad utilizando -D resuelve el problema.

java -Dapple.laf.useScreenMenuBar=true … 

Otros enfoques se mencionan en este relacionado answer.

1

No pude obtener los enfoques Info.plist o -D para trabajar (estoy trabajando en la distribución de una aplicación JRuby, que podría tener algo que ver con eso), pero para mí, pasar el parámetro -Xdock:name como se menciona en this article en la sección "Más ajustes con la barra de menú" parecía funcionar muy bien.

Ejemplo: -Xdock:name="My Application"

Cuestiones relacionadas