Método -> Runtime.getRuntime().exec("") [resolvido]

Esse método recebe como parametro uma string com o caminho do arquivo. Logo depois ele executa esse arquivo.
Até ai beleza.

String arquivo = “C:\TESTE.DOC”;
Runtime.getRuntime().exec("cmd /c "+arquivo);

Mas o problema e que quando pego um arquivo que esta na pasta por exemplo c:\arquivos de programas\acessórios\paint.exe ele não executa.
Só tá executando se o arquivo tiver no C:\ ou C:\WINDOWS , se eu entro em mais pastas ele não executa o arquivo.

Alguem sabe porque isso acontece???!!

Não será porque o nome da pasta “arquivos de programas” contém espaços ?

Este é um problema do Windows.

Márcio

[quote=marcioa1]Não será porque o nome da pasta “arquivos de programas” contém espaços ?

Este é um problema do Windows.

Márcio
[/quote]
Dá para “tratar” (evitar, solucionar) isso dos diretórios com espaços ? (sem mudar o nome de diretório e o arquivo de lugar claro) :expressionless:

Se eu não me engano, colocando aspas “” ele funciona, dá uma testada aí.

Deu certo não coloquei ==> “arquivos”“de”“programas”
aspas simples, tentei tudo e não deu certo!!
underline -> _ tambem e nada !!

[quote=arm.jr]Deu certo não coloquei ==> “arquivos”“de”“programas”
aspas simples, tentei tudo e não deu certo!!
underline -> _ tambem e nada !![/quote]

Eu estava falando de algo assim: “arquivos de programas”

Mas se isso também não funcionar, tenta “arquiv~1”

Se testar assim, funciona.

String comando = "C:\Arquivos de Programas\xxx.doc"; try { Runtime.getRuntime().exec("rundll32 SHELL32.DLL,ShellExec_RunDLL "+comando); } catch (IOException e) { e.printStackTrace(); }

Valeu era isso mesmo !!

[quote=Lauricio]Se testar assim, funciona.

String comando = "C:\Arquivos de Programas\xxx.doc"; try { Runtime.getRuntime().exec("rundll32 SHELL32.DLL,ShellExec_RunDLL "+comando); } catch (IOException e) { e.printStackTrace(); }
[/quote]

Cara, estou querendo executar um script de uma aplicacao JSP. Eu queria saber, como faço pra verificar se o script foi executado com sucesso ou nao!!!.. no shell do linux, eu verifico a variavel de ambiente $0 (que é setada conforme o exit X)… no meu script se houver erro ele sai com EXIT 1, senao no final ele sai com EXIT 0. Queria saber como receber essa informacao na classe java. Antecipadamente, agradeço!

[quote=Lauricio]Se testar assim, funciona.

String comando = "C:\Arquivos de Programas\xxx.doc"; try { Runtime.getRuntime().exec("rundll32 SHELL32.DLL,ShellExec_RunDLL "+comando); } catch (IOException e) { e.printStackTrace(); }
[/quote]

Olha eu achei interessante esse forum mas não enetendi parte da sua solução (por exemplo:[color=green]"rundll32 DLL,ShellExec_RunDLL "+comando[/color]). Será que dava para me dar uma breve explicação.

[color=darkblue] Este comando (Runtime.getRuntime().exec) só serve para executar arquivos .bat ou ele também executa comandos direto no command.exe?

a questão é… é sempre necessária uma bat para executar comandos no cmd?

Kisses! [/color]

[quote=Yanis][color=darkblue] Este comando (Runtime.getRuntime().exec) só serve para executar arquivos .bat ou ele também executa comandos direto no command.exe?

a questão é… é sempre necessária uma bat para executar comandos no cmd?

Kisses! [/color][/quote]

Executa tanto .bat como .exes

Estou tentando rodar uma bat com o Runtime.getRuntime.exec e não funciona jeito nenhum!!!
estou tentando rodar em um servidor remoto
o trecho de código é o seguinte:

function rodaBat()
{
var comando = “e:\site\dsv\scripts_ant\appl\bat_Script.bat”;
try
{ Runtime.getRuntime().exec(“rundll32 SHELL32.DLL,ShellExec_RunDLL “+comando); }
catch (Err)
{
Response.write(”\nLOG(rodaBat): Erro ao Executar a bat do script. Erro: <”+ Err.Number + “> Descrição: <” + Err.Description + “>\n”);
Response.write("\nLOG(rodaBat): comando:"+ comando +"\n");
}
}

Já tentei substituir a linha do Runtime por
Runtime.getRuntime.exec(“cmd /c”+ comando);

mas não funciona! u.u
Não entendo o q há de errado… será q alguém pode me ajudar??

como eu faço para ele chamar um jar de outro projeto!