Executar comando em DOS

Tem como executar um comando em DOS pelo JAVA?

de uma olhada:

http://java.sun.com/developer/JDCTechTips/2003/tt0304.html

Para quem conhece clipper, utiliza-se uma função chamada run() para excutar comandos e programas em DOS. Como se faz isso em JAVA?

Leia primeiro o que ele lhe passou.

Acredito que seja “mais ou menos” o que o Clipper faz, mas há alguns detalhezinhos (que são referentes ao fato que o DOS funciona diferentemente do Windows) que devem ser levados em conta. Por exemplo, no Clipper ao rodar um programa externo com run o Clipper fica esperando o programa terminar, mas no Windows você pode ou não ficar esperando o programa externo terminar. Então você não pode fazer as coisas sem entender direito o que se passa.

Depois que ler o que ele lhe passou, leia mais o seguinte artigo:

Boa tarde!

Tente isto:

	public static void main(String[] args) {

		Runtime runtime = Runtime.getRuntime();
		
		try {
			runtime.exec("notepad.exe"); // nome do aplicativo que deseja executar
		} catch (IOException e) {
			e.printStackTrace();
		}
		
	}

Abraço,

Eu utilizei esse comando aqui:

[code]
try{
Runtime rt = Runtime.getRuntime();
Process proc = rt.exec(“c:\openssl\bin\openssl.exe genrsa -out priv_key.pem 1024”);

     InputStream stdin = proc.getInputStream();
     InputStreamReader isr = new InputStreamReader(stdin);
     BufferedReader br = new BufferedReader(isr);
     
     String line = null;
     System.out.println("<OUTPUT>");
     
     while ( (line = br.readLine()) != null)
     {
        System.out.println(line);
     }
     System.out.println("</OUTPUT>");
     int exitVal = proc.waitFor();
   
     System.out.println("ExitVAL: "+exitVal);
     }catch(Throwable t){
         t.printStackTrace();
         
     }
     
   
     
    }catch(Exception e){
        e.printStackTrace();
    }[/code]

Retorna essa mensagem de erro:
java.io.IOException: Cannot run program “c:\openssl\bin\openssl”: CreateProcess error=193, %1 não é um aplicativo Win32 válido

Rodando esse programa em uma linha de comando (c:\openssl\bin\openssl.exe) ele roda normalmente? Como você conseguiu esse openssl.exe (você o compilou manualmente ou então pegou uma distribuição binária?)
A saída de um openssl.exe com esses parâmetros deve ser algo parecido com a seguinte:

C:\&gt;c:\openssl\bin\openssl genrsa -out priv_key.pem 1024
Loading 'screen' into random state - done
Generating RSA private key, 1024 bit long modulus
......++++++
...................++++++
e is 65537 (0x10001)

Depois de você conferir isso, é interessante você redirecionar a saída de erro (getErrorStream()), não a saída-padrão (getInputStream()).

Esse openssl roda no DOS assim como o que vc rodou, eu consegui gerar a chave pública aqui, através desse comando em java, meu openssl foi corronpido por algum processo que eu fiz. Muito obrigado pela ajuda