2016-04-08 3 views
0

Я пытаюсь запустить java-программу под названием Test.java из другой java-программы Demo.java. Обе программы находятся в том же пакете, что я делаю что-то вроде этого:Как выполнить java-программу из другой java-программы в 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(); 
      } 

И методы runProcess и printlines являются:

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()); 
    } 

Но это не выполняется. Скажите, пожалуйста, как это сделать?

+0

Существует ли какое-либо исключение, брошенное? – DZDomi

+0

Нет, когда он идет в то время (строка = in.readLine))! = NULL (() линии , он переходит в бесконечный цикл. Кажется, что программа продолжает выполняться и не заканчивается. – user3591433

+0

не знаю, является ли это причиной проблемы, но ваш второй вызов кажется неправильным, он все еще ссылается на java-файлы, а не на файлы классов –

ответ

0

Вы пробовали «C: \ Users \ Desktop \ gridgain \ examples \ src \ main \ java \ apache \ ignite \ schemas \ Test.java"?

Я бы комментировать это, но не имею репутации :(

Смежные вопросы