Como capturar linhas do console?

3 respostas
A

Blz galera…

Eu estou fazendo um aplicativo que executa o compilador C padrão gcc, atraves de uma página web, mas gostaria de saber como faço para que o servlet saiba que houve sucesso e em caso de falha de compilação capture as linhas de erro de sintaxe?

valew galera!!! :grin:

3 Respostas

C

Opa,
Vc vai usar o método exec da classe Runtime.
Onde vc coloca em forma de String o comando do compilador no caso, tipo … “make blablabla” ai esse método te retorna um objeto da classe Process, vendo os métodos dessa classe vemos alguns métodos, temos um de OutputStream que vc terá que implementar!
Bom, aí vc vai ter q se virar um pouco pq eu nunca usei isso!!!

Bom, caso alguem tenha outra alternativa, alguem q ja fez algo do gênero!!
Manda aí!!

Falow!

A

ow…valew…mas agora eu estou com outro problema…

eu estou rodando esse servlet no Tomcat 5 …

import javax.servlet.<em>;

import javax.servlet.http.</em>;

import <a href="http://java.io">java.io</a>.*;
public class Compila extends HttpServlet {

public void doPost( HttpServletRequest request, HttpServletResponse response )

throws ServletException, IOException{

String arquivo = request.getParameter(arq);//pega lista de arquivos

String progNome = request.getParameter(nome);//pega o nome do executável que será gerado
String command = "dir";

    Runtime runtime = Runtime.getRuntime();
    Process process = null;
    
    //executa o gcc com a lista de arquivos
	process = runtime.exec(command);
	//captura as linhas de saida do console... 
	DataInputStream in = new DataInputStream(  process.getInputStream() );
	
	String line = null;
	
	line = in.readLine();
	
	response.setContentType("text/html");
	
                          PrintWriter pagResp = response.getWriter();//pagRep guarda página de resposta
	StringBuffer buf = new StringBuffer();

}

Mas tá rolando a seguinte menssagem de erro…exceções…

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

java.io.IOException: CreateProcess: dir error=2

java.lang.Win32Process.create(Native Method)

java.lang.Win32Process.<init>(Win32Process.java:66)

java.lang.Runtime.execInternal(Native Method)

java.lang.Runtime.exec(Runtime.java:566)

java.lang.Runtime.exec(Runtime.java:428)

java.lang.Runtime.exec(Runtime.java:364)

java.lang.Runtime.exec(Runtime.java:326)

Compila.doPost(Compila.java:30)

javax.servlet.http.HttpServlet.service(HttpServlet.java:709)

javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServlet.java:419)

org.apache.catalina.servlets.InvokerServlet.doPost(InvokerServlet.java:169)

javax.servlet.http.HttpServlet.service(HttpServlet.java:709)

javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

Pô…se alguém poder me ajudar eu ficaria muito grato mesmo…!!! :razz:

valew!!!

C

Olá,
Nao sei te dizer o q é, mas aconselho a vc testar isso numa classe java normal (j2se) pq o debug pode ser mais fácil!!!

Até mais!

Criado 25 de setembro de 2004
Ultima resposta 26 de set. de 2004
Respostas 3
Participantes 2