Variaveis de ambiente, mensagens e comando de dos em java!

6 respostas
R

ae pessoal!

to eu aki importunando vcs de novo com minhas duvidas inusitadas e cabeludas…

eu to pensando em fazer o que será um começo de um IDE em java!

ai eu pensei que eu vez de eu compilar o .java, eu simplesmente executo o comando javac…
hauhauha
ai eu pego as mensagens de erro do dos(ou o shell do linux), e mostro pro usuário…

alguém tem alguma idéia de como faz isso?

| |
|=( )=| ====> may the force be with you…
| |

(ninguém faz arte em ASCII melhor que eu!)

6 Respostas

J

“microfilo”:
ae pessoal!
ai eu pensei que eu vez de eu compilar o .java, eu simplesmente executo o comando javac…
hauhauha
ai eu pego as mensagens de erro do dos(ou o shell do linux), e mostro pro usuário…

Uai, e assim tu nao vai compilar nao? Ou tu acha que existe outro jeito de fazer isso? :confuso:

T+

F

vc pode criar temporariamente um arquivo .bat q compila o prog, dai vc poe isso:

Runtime.getRuntime().exec("start arq.bat");

dai vai aparecer as msg pro usuario…

R

sei
mas não tem como pegar as mensagens que o dos manda?

C

Tem sim, mas tua IDE vai ficar muito tosca assim. Seria melhor ela utilizar o ANT. Todas estão fazendo isso. É mais pratico, facil, rapido e confiavel. De qualquer forma o código abaixo executa um comando no DOS ou shell do linux e te devolve o que foi escrito. Boa sorte!

import java.io.*;
public class Teste {

	public Teste(){
		
	}
	
	public static void main(String args[]){
		String comando = "msconfig"; //Comando a ser execultado.
		String resposta = new Teste().execComando(comando);
		if(!"".equals(resposta))
			System.out.println("executando: " + comando + "... \n" + resposta);
	}
	
	public String execComando(String asComando){
		String retorno="";
		try{
			Runtime rt = Runtime.getRuntime();
			Process prcs = rt.exec(asComando); //Executa o comando no shell ou DOS
			InputStreamReader isr = new InputStreamReader(prcs.getInputStream());
			BufferedReader br = new BufferedReader(isr);
			String line;
			//Le a resposta do comando linha por linha.
			while ((line = br.readLine()) != null)
				retorno += line + "\n";
			}catch(IOException ioe){
				System.out.println(ioe.getMessage());
			}
			return retorno;
			}
		}
F
"caitiff-jVampire":
Tem sim, mas tua IDE vai ficar muito tosca assim. Seria melhor ela utilizar o ANT. Todas estão fazendo isso. É mais pratico, facil, rapido e confiavel. De qualquer forma o código abaixo executa um comando no DOS ou shell do linux e te devolve o que foi escrito. Boa sorte!
import java.io.*;
public class Teste {

	public Teste(){
		
	}
	
	public static void main(String args[]){
		String comando = "msconfig"; //Comando a ser execultado.
		String resposta = new Teste().execComando(comando);
		if(!"".equals(resposta))
			System.out.println("executando: " + comando + "... \n" + resposta);
	}
	
	public String execComando(String asComando){
		String retorno="";
		try{
			Runtime rt = Runtime.getRuntime();
			Process prcs = rt.exec(asComando); //Executa o comando no shell ou DOS
			InputStreamReader isr = new InputStreamReader(prcs.getInputStream());
			BufferedReader br = new BufferedReader(isr);
			String line;
			//Le a resposta do comando linha por linha.
			while ((line = br.readLine()) != null)
				retorno += line + "\n";
			}catch(IOException ioe){
				System.out.println(ioe.getMessage());
			}
			return retorno;
			}
		}

pou faz tempo q eu queria saber como se pega a resposta de outro prog, vlw ae! mas soh uma coisa, n funciona pra alguns comandos... tentei dar um dir e n funcionou... tive q criar um arquivo .bat e pegar o resultado, n tem como ser mais direto?

R

“caitiff-jVampire”:
Tem sim, mas tua IDE vai ficar muito tosca assim. Seria melhor ela utilizar o ANT. Todas estão fazendo isso. É mais pratico, facil, rapido e confiavel. De qualquer forma o código abaixo executa um comando no DOS ou shell do linux e te devolve o que foi escrito. Boa sorte!

ANT?
eu vi uma Java Magazine com isso na capa?
vc pode explicar melhor?

Criado 6 de julho de 2004
Ultima resposta 8 de jul. de 2004
Respostas 6
Participantes 4