2016-04-08 7 views
0

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?

+0

Gibt es Ausnahmen geworfen? – DZDomi

+0

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

+0

weiß nicht, ob dies die Ursache des Problems ist, aber Ihr zweiter Aufruf scheint falsch, es verweist immer noch auf Java-Dateien, nicht Klassendateien –

Antwort

0

Haben Sie "C: \ Benutzer \ Desktop \ gridgain \ examples \ src \ main \ java \ apache \ ignite \ schemas \ Test.java" ausprobiert?

Ich würde diesen Kommentar, aber nicht über den Ruf :(

Verwandte Themen