Pregunta

Tengo un pequeño problema. Después de haber migrado recientemente en Mac, he estado tirando de mi cabello y buscando en la web sobre esto, pero no he encontrado lo que estaba buscando exactamente. Quiero establecer el nombre de la aplicación en el menú del sistema, que no funciona en este momento (se muestra mi nombre de clase principal en lugar del nombre de mi aplicación). ¿Qué propiedad debo modificar?

He colocado con éxito mi menú en la barra de menú del sistema utilizando la propiedad correcta apple.laf, pero no he encontrado lo que necesitaba para el nombre.

Mi búsqueda me llevó a documentos de Info.plist, sobre los cuales no tengo ningún conocimiento. Traté de hacer uno simple que solo cambiara el nombre para mostrar de la aplicación, pero por alguna razón no funcionó. Ayuda?

Otros consejos

Según documentación del sol , pasaría el nombre al virtual máquina como un parámetro de línea de comando para el comando java con -Xdock: name = " {AppName} " reemplazando {AppName} con lo que desea que aparezca como título en la barra de menú.

Editar: No creo que pueda configurar esto en el propio código Java, pero como dijo Chuck, Apple tiene un programa Jar Bundler que está diseñado para crear el jar con la lista Info.plist que necesita. De acuerdo con la guía del usuario para debe configurar la propiedad Nombre del paquete en el panel de propiedades para obtener lo que desea.

Hay dos formas:

  1. cuando llamas: java -Xdock: name = myAppName
  2. En tiempo de ejecución antes cualquier interacción GUI:

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

La configuración de cualquiera de las propiedades propuestas de Java (con -D en el script de shell de lanzamiento) no funcionó para mí, porque son solo para AWT & amp; Swing GUIs. Incluso las opciones específicas de Mac -Xdock: * no funcionaron.

Lo que funcionó es usar este Proyecto https://github.com/codecentric/NSMenuFX

En mi controlador JavaFX para el menú, agregué el siguiente fragmento:

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

Ahora el nombre en negrita del menú en sí no se puede configurar con esta biblioteca, pero puede controlar esa configuración CFBundleDisplayName en el Info.plist de su paquete de aplicaciones.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top