Questão:
Como posso iniciar um aplicativo GUI na pasta Aplicativos da linha de comando?
amphibient
2014-01-30 03:18:46 UTC
view on stackexchange narkive permalink

Eu gostaria de iniciar um aplicativo GUI que está na pasta Aplicativos da linha de comando ao invés de clicar no ícone no Finder ou no Dock . O motivo pelo qual desejo isso é poder iniciá-lo como root usando sudo em vez de iniciá-lo como meu usuário padrão.

Quando entrei em Aplicativos, parecia assim:

  / Applications / IntelliJ IDEA 13 CE.app@16: 16: 42>ls -latotal 40drwxr- xr-x @ 10 myuser admin 340 Dec 17 14:07 .drwxrwxr-x + 68 root admin 2312 Jan 20 18:00 ..drwxr-xr-x @ 6 myuser admin 204 Dec 17 14:08 Contents-rw-r-- r - @ 1 myuser admin 11358 dez 17 14:06 LICENSE.txt-rw-r - r - @ 1 myuser admin 127 dez 17 14:06 NOTICE.txtdrwxr-xr-x @ 14 myuser admin 476 dez 17 14 : 09 bin-rw-r - r - @ 1 myuser admin 10 dez 17 14:01 build.txtdrwxr-xr-x @ 85 myuser admin 2890 dez 17 14:06 libdrwxr-xr-x @ 29 myuser admin 986 dez 17 14:06 licenserwxr-xr-x @ 30 myuser admin 1020 17 dez 14:06 plugins  

O engraçado é que, no Finder , IntelliJ IDEA 13 CE é exibido como um ícone clicável que inicia o aplicativo. Mas, no nível do terminal, é na verdade um diretório com conteúdos que não sei como navegar e manipular para emular um clique na GUI.

Relacionado: https://apple.stackexchange.com/questions/4240
Dois respostas:
grg
2014-01-30 03:36:23 UTC
view on stackexchange narkive permalink

Basta usar open:

  open "/ Applications / IntelliJ IDEA 13 CE.app"  
  open -a "IntelliJ IDEA 13 CE"  

No entanto, prefixar sudo não é suficiente para executar como root. Você precisará executar o binário real:

  sudo /Applications/ApplicationName.app/Contents/MacOS/ApplicationName  
Se você usar o sinalizador -a para o comando `open`, você não precisa do caminho.
Sim, mas fornecer o caminho completo sempre funcionará, independentemente de onde o aplicativo esteja localizado. De qualquer maneira, eu adicionei.
Eu não tive que usar aberto.
Nunca tive a falha da bandeira -a. Os aplicativos não precisam estar localizados em / Aplicativos para que funcionem. Posso abrir coisas que escrevi que estão enterradas em algum lugar em ~ / Library / sem problemas. O único problema é se houver mais de uma cópia de um aplicativo, então não tenho certeza de qual será aberta.
@Mark Tive problemas com -a para aplicativos em unidades de rede, embora eu suponha que seja um caso extremo.
Posso ver isso, mas nunca tentei.
Apenas um aviso de que alguns aplicativos não gostam que seu executável seja executado diretamente, sem passar algumas opções na linha de comando. Não existe um plist em algum lugar que define as opções que são passadas para o executável quando ele é executado como um aplicativo?
O arquivo Info.plist dentro do diretório Contents do App pode definir, por exemplo, variáveis ​​de ambiente que devem ser definidas. Executar o executável diretamente irá ignorar isso.
swineone
2014-01-30 03:35:18 UTC
view on stackexchange narkive permalink

Basta fazer um 'cd' no pacote do aplicativo, depois na pasta Contents e, em seguida, na pasta MacOS . Deve haver um arquivo executável lá que você possa executar normalmente. Se houver vários arquivos executáveis ​​lá, você pode olhar para o arquivo Contents / Info.plist dentro do pacote do aplicativo e procurar a entrada CFBundleExecutable , que indica o executável arquivo que é iniciado quando você clica duas vezes no pacote do aplicativo no Finder.



Estas perguntas e respostas foram traduzidas automaticamente do idioma inglês.O conteúdo original está disponível em stackexchange, que agradecemos pela licença cc by-sa 3.0 sob a qual é distribuído.
Loading...