Hallo,
ich starte aus einer Anwendung heraus ein externes Jar-File und will dessen Output weiter verarbeiten. Die aufrufende Anwendung sieht folgendermassen aus:
Das aufgerufene Jar erzeugt ein paar Ausgaben in die Systemkonsole:
Das Problem ist, daß ich in meinem BufferedReader nur die Ausgabe des Konsolenfensters, das durch cmd gestartet wird, lesen kann. Dieses setzt den start-Befehl ab und ist dann beendet, wartet auch nicht auf das Ende des Jars. Den Output des externen Jars, das in einer neuen JVM läuft, bekomme ich nicht.
Hat jemand eine Idee, wie man an den Output des externen Jars kommt?
ich starte aus einer Anwendung heraus ein externes Jar-File und will dessen Output weiter verarbeiten. Die aufrufende Anwendung sieht folgendermassen aus:
Java:
public class Aufruf
{
public static void main(String[] args)
{
ArrayList as = new ArrayList();
String cmd2 = "cmd " + "/c " + "start javaw -classpath Test.jar Test";
try
{
Process runCommand = Runtime.getRuntime().exec(cmd2);
BufferedReader procout = new BufferedReader(new InputStreamReader(runCommand.getInputStream()));
String s;
while ((s = procout.readLine()) != null)
{
as.add(s);
}
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
Das aufgerufene Jar erzeugt ein paar Ausgaben in die Systemkonsole:
Java:
public class Test
{
public static void main(String[] args)
{
for (int i = 0; i < 20; i++)
{
System.out.println(String.valueOf(i));
}
}
}
Das Problem ist, daß ich in meinem BufferedReader nur die Ausgabe des Konsolenfensters, das durch cmd gestartet wird, lesen kann. Dieses setzt den start-Befehl ab und ist dann beendet, wartet auch nicht auf das Ende des Jars. Den Output des externen Jars, das in einer neuen JVM läuft, bekomme ich nicht.
Hat jemand eine Idee, wie man an den Output des externen Jars kommt?