Eu estava “brincando” um pouco com a java.lang.Runtime e me deparei com o seguinte problema: o exemplo abaixo deveria executar os comandos (ou processos) numa boa, alguns at� funcionam, mas quando � algo “via prompt” de comando n�o funciona de jeito nenhum (algu�m at� havia colocado um exemplo em uma mensagem anterior da lista: String c = "dir c: > dir.txt"; mas isto n�o d� certo)! N�o sei se estou fazendo algo errado...

 

Como eu executo o que eu quiser como se estivesse em um prompt de comando normal? (String c = "explorer.exe c:\\j2sdk1.4.1\\bin"; funciona!).

Estou rodando este exemplo no XP, mas creio veementemente que n�o tem nada relacionado a este fato.

 

(este c�digo est� funcionando, s� n�o sei como implementar direito os comandos para “c”)

 

public class RuntimeTeste {

��� public static void main(String[] args) {

������� Runtime rt = Runtime.getRuntime();

�������

���� String c = "explorer.exe c:\\j2sdk1.4.1\\bin";������������� ���������������������������������������������������������� // este funciona! Abre o Explorer na pasta especificada

���� // String c = "\"C:\\Arquivos de programas\\Half-Life\\hl.exe\" -console -game cstrike";������������ // este funciona! Executa o Counter-Strike

���� // String c = "regedit.exe"; �������������� ����������������������������������������������������������������������������������// este funciona! Executa o regedit

 

���� // agora segue o que n�o funciona:

 

���� // String c = "C:\\WINNT\\System32\\gpedit.msc"; ��������������� // java.io.IOException: CreateProcess: C:\WINNT\System32\gpedit.msc error=193

���� // String c = "dir c: > dir.txt"; ����������� �����������������������������������// java.io.IOException: CreateProcess: dir c:\ > dir.txt error=2

��� �// String c = "mkdir c:\\teste"; ��������� �����������������������������������// java.io.IOException: CreateProcess: md c:\teste error=2�

���� // String c[] = {"mkdir", "c:\\teste"}; ������������� �����������������������// java.io.IOException: CreateProcess: mkdir c:\teste error=2

���� // String c[] = {"dir", "c:\\", ">", "dir.txt"}; ������������������ �����������// java.io.IOException: CreateProcess: dir c:\ > dir.txt error=2

���� // String c = “cmd.exe”;����������������������������������������������������� // ???????????

�

������� try {�����������

����������� rt.exec(c);

������� }

������� catch(Exception e) {

��������� System.err.println(e);

������� }

��� }

}

 

Esque�am StringTokenizer, pois j� tentei tamb�m...

J� dei uma lida na API em java.lang.Runtime, mas o que tem l� � vago.

Se algu�m souber o jeito certo de se fazer isto eu agrade�o desde j�.

 

Herbert Alexander Faleiros
Administrador de redes NT/W2K
Programador Java / Webmaster
Graduando em F�sica - UFSCar
[EMAIL PROTECTED]
[EMAIL PROTECTED]
(16) 9117-2962

 

Responder a