sintaxe correta para usar Runtime.exec com "Arquivos de Programas"

votos
1

Eu gostaria de usar o método com a seguinte assinatura:

exec(String command, String[] envp, File dir) 

Suponha que meu programa é chamado de myprog.exe e está localizado em C: \ Program Files \ My Software. O que é a sintaxe correta para usar Runtime.exec? Recebo uma mensagem de erro O sistema não pode encontrar o arquivo especificado. Para esclarecer Quero começar myprog.exe do diretório C: \ Program Files \ My Software e não de onde o programa Java está sendo executado

Publicado 27/08/2009 em 04:54
fonte usuário
Em outras línguas...                            


1 respostas

votos
2

Eu recomendaria usar o outro sabor exec()em vez disso:

exec(String[] cmdarray, String[] envp, File dir) 

Usando este método, você pode passar o caminho completo para o executável no cmdarray[0]e os argumentos de comando (se houver) em elementos da matriz subseqüentes. Esta é mais robusto do que lidar com a citação ou escapar ou o que você pode ter que fazer para que ele funcione com o simplista exec().

Para responder a outra parte da sua pergunta, não deixe de passar no caminho onde você deseja iniciar o seu programa ( "C:\\Program Files\\My Software") no dirparâmetro do acima exec()chamada. Observe também que eu usei \\no caminho, porque Java usa \como um caractere de escape, o que significa que você deve usar dois em uma string literal representando um caminho.

Respondeu 27/08/2009 em 04:58
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more