que he estado haciendo lo mismo ..
public String compile()
{
String log="";
try {
String s= null;
//change this string to your compilers location
Process p = Runtime.getRuntime().exec("cmd /C \"C:\\Program Files\\CodeBlocks\\MinGW\\bin\\mingw32-g++.exe\" temp.cpp ");
BufferedReader stdError = new BufferedReader(new
InputStreamReader(p.getErrorStream()));
boolean error=false;
log+="\n....\n";
while ((s = stdError.readLine()) != null) {
log+=s;
error=true;
log+="\n";
}
if(error==false) log+="Compilation successful !!!";
} catch (IOException e) {
e.printStackTrace();
}
return log;
}
public int runProgram()
{
int ret = -1;
try
{
Runtime rt = Runtime.getRuntime();
Process proc = rt.exec("cmd.exe /c start a.exe");
proc.waitFor();
ret = proc.exitValue();
} catch (Throwable t)
{
t.printStackTrace();
return ret;
}
return ret;
}
Estos son 2 funciones que se utilizan en mi MiDE primero utilizado para compilar. Cambia la dirección a la ubicación de tus compiladores. y devuelve el registro (en caso de que la compilación haya fallado) para ver los errores.
El segundo ejecuta el código compilado. Devolviendo el código de salida para verificar si finalizó correctamente.
No soy un muy buen codificador de Java. Supongo que puedes mejorar mi código mucho mejor;) .. en caso de que lo hagas, infórmame. Y también estoy buscando una respuesta en how to communicate with the created process
Esto es muy básico, pero +1 para dar un buen punto de partida. –
¿Qué más necesitas? – shababhsiddique