Comandos do sistema windows

3 respostas
T

Ola, tenho um programa que deveria pegar a variavel %SystemRoot% do windows, mas para pegar essa variavel eu deveria dar um echo %SystemRoot% e jogar o retorno em uma variavel, mas o java nao acha o comando echo do windows. segue abaixo o programa, e agradeco a quem poder me ajudar.

package envios;

import <a href="http://java.io">java.io</a>.*;

public class Envio{
public Envio() throws IOException {

Runtime run = Runtime.getRuntime();

String dir = D:\WINDOWS;//essa variavel deve receber o SystemRoot

Process procDir = run.exec(echo %SystemRoot%);

new Processo(procDir.getInputStream()).start();

Process proc = run.exec(ftp -n -i -s:+dir+"\Temp\dados.dat 10.1.1.1");

new Processo(proc.getInputStream()).start();

}

public static void main(String[] args)

throws IOException, InterruptedException {

new Envio();

}

class Processo extends Thread {
InputStream stream = null;

public Processo(InputStream stream) {
        this.stream = stream;
}

private void parseStream()
        throws IOException {
        InputStreamReader isr = new InputStreamReader(stream);
        BufferedReader br = new BufferedReader(isr);
        String line = null;
        while ((line = br.readLine()) != null) {
                System.out.println(line);
        }
}

public void run() {
        try {
                parseStream();
        } catch (IOException e) {
                e.printStackTrace();
        }
	}
}

}

Att,

Tudenski

3 Respostas

celiomarcos

No JDK1.5 tem:
Método antigo (“desdepreciado”):

String strSystemRoot = System.getenv("SystemRoot");
        System.out.println(strSystemRoot);

e o método novo (exibe todas as variaveis):

java.util.Map variables = System.getenv();
        java.util.Set variableNames = variables.keySet();
        java.util.Iterator nameIterator = variableNames.iterator();
        
        for (int index = 0; index < variableNames.size(); index++) {
            String name = (String) nameIterator.next();
            String value = (String) variables.get(name);
            System.out.println(name + "=" + value);
        }
correainfo

Esse metodo getenv nao tem no system.....

celiomarcos:
No JDK1.5 tem: Método antigo ("desdepreciado"):
String strSystemRoot = System.getenv("SystemRoot");
        System.out.println(strSystemRoot);
e o método novo (exibe todas as variaveis):
java.util.Map variables = System.getenv();
        java.util.Set variableNames = variables.keySet();
        java.util.Iterator nameIterator = variableNames.iterator();
        
        for (int index = 0; index < variableNames.size(); index++) {
            String name = (String) nameIterator.next();
            String value = (String) variables.get(name);
            System.out.println(name + "=" + value);
        }
celiomarcos

Claro que tem! Olha só esse link:
http://java.sun.com/j2se/1.5.0/docs/api/java/lang/System.html#getenv(java.lang.String)

Criado 22 de junho de 2006
Ultima resposta 22 de jun. de 2006
Respostas 3
Participantes 3