Olá. Quero que minha aplicação java execute uma aplicação externa.
Criei a classe:
import java.io.IOException;
public class Teste {
public static void main(String[] args) {
String[] comando = {"cmd", "/c", "start", "C:\\teste.bat"};
try {
Runtime.getRuntime().exec(comando);
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
Esse código funcionou OK, o programa executou o bat.
Mas quando tento executar o bat na pasta: “C:\pasta teste\teste.bat” aí não funciona mais, acho que é por causa do espaço em branco.
Como eu resolvo isso? Já tentei colocar aspas no caminho do arquivo mas não funcionou.
P.S.: Se eu colocar “C:\pastat~1\teste.bat” funciona! Mas o problema é que futuramente esse diretório será escolhido pelo usuário por um JFileChooser, aí não dá fazer a conversão.
Já tentou isso
Quando tem espaço vai aspas a mais.
Runtime.getRuntime.exec("cmd /c \"c:\\seu caminho\\teste.bat\"");
Quando não tem espaço no caminho.
Runtime.getRuntime.exec("cmd /c \ c:\\seu caminho\\teste.bat\");
Rpz tem algo acho que tem a ver como o star vai interpretar esse comando:
Se você roda no DOS(cmd.exe) esse comando: start “c:\Nova pasta\teste.txt”
Só vai aparecer outra tela do DOS.
Para simplifiocar as coisas você pode usar só:
String[] comando = {“notepad”, “C:\Nova pasta\teste.txt”};
Ai voçê já pode escolher em qual programa que vc quer abrir o arquivo…
Blz ?
[quote=sodrope]Já tentou isso
Quando tem espaço vai aspas a mais.
Runtime.getRuntime.exec("cmd /c \"c:\\seu caminho\\teste.bat\"");
Quando não tem espaço no caminho.
Runtime.getRuntime.exec("cmd /c \ c:\\seu caminho\\teste.bat\");
Desse jeito funcionou… Valeu
Ahhh era um *.BAT … não tinha visto… heheh
blz !
[quote=RicardoCobain]Ahhh era um *.BAT … não tinha visto… heheh
blz ![/quote]
Era um txt, mas depois eu editei o post hehehe…