To com uma dúvida sobre executar comandos do dos pelo java, pesquisei um monte e sempre dizem pra usar o seguinte comando:
Runtime.getRuntime().exec("cmd /c pause")
Pelo o que eu entendi, isso faria abrir o cmd, e passar o comando “pause” pra ele, e ficar aguardando eu precionar alguma tecla, mas coloquei esse comando, mandei compilar e executar, e nada acontece, ele inicializa e já termina, sem abrir nada de dos na tela.
Tentei também:
Runtime.getRuntime().exec("notepad")
e funciona normal, executo e abre o bloco de notas.
Velho ta certo seu comando mas quando você executa um comando com o Runtime a classe te retorna outra classe chamada process e ela tem a saida e entrada do programa(ou seja não é exibido na tela vai para um InputStream), segue um exemplo para você ter uma ideia.
flw
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class teste{
public static void main(String[] args){
try{
Process processo = Runtime.getRuntime().exec("ls -l");
BufferedReader br = new BufferedReader(new InputStreamReader(process
String linha;
while((linha = br.readLine()) != null)
System.out.println(linha);
}catch(Exception e){
e.printStackTrace();
}
}
}
Se você quer esperar o comando acabar, você deve pegar o Process que representa o programa em execução e chamar o método waitFor().
Process processo = Runtime.getRuntime().exec("notepad");
int result = process.waitFor();
O result contém o código de saída do programa (o mesmo que vc passa como parâmetro para a função System.exit do Java).
É uma boa prática esvaziar os streams do processo, como já te mostraram, pois alguns programas jamais finalizarão se você não fizer isso. Os stream contém o que sai no System.out e no System.err. Já postei uma classe no GUJ que faz isso em threads separadas:
Ahhhhh… A telinha do prompt de comando não vai aparecer mesmo.
Você deve jogar os streams do processo para uma caixa de texto, e usa-los para capturar o teclado, fazendo você mesmo o que o prompt de comando faz.
Não tem mais DOS desde o Windows 95. Passou a ser chamado de prompt de comando.
Mas com o a sintaxe do prompt é muito similar ao DOS, o povo ainda chama assim.[/quote]
Mas os antigos comandos do DOS existia até o Windows XP né?
Não, os antigos comandos do DOS estão até no windows 7.
Mas enfim, meu objeto não é aparecer o DOS, se ele aparecer ou não, não me importa, apenas quero que ele execute meu comando, e isso não está ocorrendo
Não tem mais DOS desde o Windows 95, que passou a ser um SO completo.
O prompt é chamado de prompt de comando.
Mas com o a sintaxe do prompt é muito similar ao DOS (que é outro sistema operacional), o povo ainda chama assim.
Dos é a sigla de Disk Operating System.[/quote]
Acho que windows 95 não é um SO completo, que eu me lembre ele era um programa que rodava dentro do DOS, só o 98 passou a ser um SO completo, não tenho certeza disso, mas é o que eu me lembro
O Runtime.exec não está disparando nenhum exception? Ele normalmente dispara quando não consegue executar o comando.
Sobre o DOS. O Windows 95 foi mesmo um sistema de transição. Ele controlava parte das tarefas (como o sistema de arquivos) e ao mesmo tempo era compatível com drivers do DOS.
O DOS, como sistema operacional, foi morto em 98. Mas seu prompt de comando é realmente usado até hoje. Não significa que o Windows use ou dependa do DOS hoje em dia, você pode instalar qualquer prompt no Windows, inclusive o do Linux, através do Cygwin.
Não, o console fica em branco no fim da execução, nenhum erro ocorre, e estou usando dentro de um try, e no catch mando mostrar os erros, da forma padrão