O pacote .app do OS X Java não pode abrir outros aplicativos?
Eu escrevi um aplicativo Java SWT para OS X, o exportei como um .jar e o empacotei em .app. Tudo funciona da maneira esperada, exceto por uma parte crítica do meu aplicativo; requer abrir outros aplicativos.
eu tenteiRuntime.exec();
assim comoProcessBuilder
para fazer isso, chamando oopen
comando nos outros aplicativos que eu preciso para iniciar. Isso funciona perfeitamente bem no Eclipse ou se eu iniciar o meu .jar exportado pelo Terminal. No entanto, ele não funciona quando iniciado, clicando duas vezes no .app.
Gostaria de saber se isso é um erro da minha parte ou uma restrição do Java ou do OS X. Como os aplicativos para Mac estão na área restrita (pelo que entendi), é por isso que ligaropen
de dentro de um aplicativo não faz nada?
Eu usei duas abordagens para abrir o aplicativo necessário. É um jogo Steam, mas também vem como varejo, para que possa ser lançado pelo próprio aplicativo ou usando osteam://
protocolo. No meu código, tentei o seguinte:
ProcessBuilder pb = new ProcessBuilder("open", "steam://rungameid/57300//");
pb.start();
ProcessBuilder pb = new ProcessBuilder("open", appDir);
pb.start();
appDir
é uma string que contém um caminho para o pacote .app que desejo iniciar.
Alguma idéia de por que isso falha em um pacote de aplicativos para Mac, mas funciona bem no Eclipse / Jar? A execução do aplicativo com o console (por meio do script bash no pacote configurável) não retorna nenhum erro; portanto, parece-me que o Java executa o comando corretamente, mas o OS X talvez o ignore?
Também tentei pesquisar no Google por isso, mas talvez pareça altamente incomum ou apenas muito específico e não consegui encontrar nada.