Ich versuche, ein Java-Programm namens Test.java von einem anderen Java-Programm Demo.java ausführen. Beide Programme sind im selben Paket, ich tue etwas wie folgt aus:Wie führe ich ein Java-Programm aus einem anderen Java-Programm in Eclipse
try{
System.out.println("Executing another client");
runProcess("javac -cp gridgain-examples C:/Users/Desktop/gridgain/examples/src/main/java/apache/ignite/schemas/Test.java");
System.out.println("******");
runProcess("java -cp gridgain-examples C:/Users/Desktop/gridgain/examples/src/main/java/apache/ignite/schemas/Test.java");
} catch(Exception e) {
e.printStackTrace();
}
Und die runProcess und printlines Methoden sind:
private static void printLines(String cmd, InputStream ins) throws Exception {
String line = null;
BufferedReader in = new BufferedReader(
new InputStreamReader(ins));
while ((line = in.readLine()) != null) {
System.out.println(cmd + " " + line);
}
}
private static void runProcess(String command) throws Exception {
Process pro = Runtime.getRuntime().exec(command);
printLines(command + " stdout:", pro.getInputStream());
printLines(command + " stderr:", pro.getErrorStream());
pro.waitFor();
System.out.println(command + " exitValue() " + pro.exitValue());
}
Aber es ist die Ausführung nicht. Bitte sag mir wie es geht?
Gibt es Ausnahmen geworfen? – DZDomi
Nein, wenn es in während geht ((line = in.readLine())! = Null) Zeile Es geht in eine unendliche Schleife, so scheint es, das Programm läuft weiter und endet nicht – user3591433
weiß nicht, ob dies die Ursache des Problems ist, aber Ihr zweiter Aufruf scheint falsch, es verweist immer noch auf Java-Dateien, nicht Klassendateien –