2013-04-25 66 views
-2

我想從另一個java程序運行一個已編譯的java程序及其類路徑。但它沒有顯示結果。我的代碼如下:從另一個Java程序運行一個已編譯的java程序及其類路徑

String[] cmd = {"C:\\WINDOWS\\system32\\cmd.exe","/c","start","javac","D:\\java\\hi\\src\\helo.java"}; 

Runtime.getRuntime().exec(cmd); 

注意:此後,類文件被創建,但下面的代碼不起作用。

String[] cmd1 = {"C:\\WINDOWS\\system32\\cmd.exe","/c","start","java"," -cp D:\\java\\hi\\src"," helo"}; 

Runtime.getRuntime().exec(cmd1); 
+1

是什麼*不工作*是什麼意思?任何錯誤? – NINCOMPOOP 2013-04-25 05:49:47

回答

0

我希望你沒有得到任何例外。我假設你從正確的位置獲取類文件。

因爲你試圖捕獲輸出的輸出流,所以你應該捕獲你在下半場運行的java命令的輸入流。

嘗試類似:(只爲第二個命令

BufferedReader in = null; 
try { 
    String[] cmd1 = {"C:\WINDOWS\system32\cmd.exe","/c","start","java"," -cp D:\java\hi\src"," helo"}; 
    Process p = Runtime.getRuntime().exec(cmd1); 
    in = new BufferedReader(new InputStreamReader(p.getInputStream())); 
    String line = null; 
    while ((line = in.readLine()) != null) { 
     System.out.println(line); 
    } 
} catch (IOException e) { 
     e.printStackTrace(); 
} finally { 
    in.close(); 
} 
+0

感謝Himanshu Bhardwaj ..此代碼工作正常,並在控制檯顯示結果...很好... – user2318302 2013-04-25 06:20:27

+0

很高興我能幫到你。 – 2013-04-25 06:28:12

0

你需要爲了在cmd中運行動態做這樣

Runtime.getRuntime.exec( 「CMD/C CD /桌面/文件夾/ &的Java yourprogram」);

這裏假設你有在桌面/文件夾/目錄下生成的類文件

事情要注意的是& - 到Concat的命令和/ C來傳遞參數到CMD