Pergunta

Eu tenho um pequeno problema. Tendo recentemente migraram no Mac, eu tenho sido puxando meu cabelo e pesquisar na web sobre isso, mas não encontrei o que eu estava exatamente procurando. Eu quero definir o nome do aplicativo no menu do sistema, que não funciona no momento (o meu nome da classe principal é exibido em vez do meu nome do aplicativo). O imóvel devo modificar?

Eu tenho colocado com sucesso o meu menu na barra de menus do sistema usando a propriedade apple.laf correto, mas eu não encontrei o que eu precisava para o nome.

A minha busca me levou a documentos Info.plist, sobre as quais não tenho qualquer conhecimento. Eu tentei fazer um simples que só iria mudar nome de exibição do aplicativo, mas por algum motivo ele não tem funcionado. Ajuda?

Foi útil?

Solução

Tente utilizar o Jar incluído Bundler , que está lá para lidar com tudo isso para você. E se você quiser ver como quaisquer obras característica particular, você pode inspecionar a saída Jar de Bundler.

Outras dicas

De acordo com a documentação do sol você deve passar o nome para o virtual máquina como um parâmetro de linha de comando para o comando java com -Xdock:name="{AppName}" substituindo {AppName} com o que você deseja que apareça como o título na barra de menu.

Edit: Eu não acredito que você pode definir isso no código Java propriamente dito, mas como disse Chuck a Apple tem um programa Jar Bundler que é projetado para criar o frasco com o Info.plist que você precisa. De acordo com o para -lo, você precisa definir a propriedade Bundle nome no painel de propriedades para obter o que deseja.

Há duas maneiras:

  1. quando ligar: java -Xdock: name = myAppName
  2. Em tempo de execução antes qualquer Interacción GUI:

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

Configurações de qualquer um dos Java proposto (com -D no script shell lançamento) propriedades não funcionou para mim, porque eles são apenas para AWT & Swing GUIs. Mesmo o Mac trabalho opções específicas -Xdock:* did't.

O que fez o trabalho está usando este projeto https://github.com/codecentric/NSMenuFX

No meu controlador JavaFX para o menu eu adicionei o seguinte trecho:

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

Agora o nome corajoso do próprio menu não pode ser definido utilizando essa biblioteca, mas você pode controlar que CFBundleDisplayName configuração no Info.plist de seu pacote de aplicativos.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top