2015-04-06 35 views
0

Similar question 這個問題有一個文件名與類路徑的問題。 我在我的程序中使用classpath,但沒有得到輸出。從java程序調用類文件

我通過各種帖子搜索了很多,但我無法解決我的錯誤。 我有一個類文件在我的D:該文件只是打印「你好世界」。

當我運行它通過命令提示符:

java -cp D:/ Test 

它工作正常。

但是當我作爲運行相同的另一個Java程序的主要方法中:

Process p = Runtime.getRuntime().exec("java -cp D:/ Test"); 

我沒有得到任何輸出,也沒有錯誤。 有人可以幫助我這裏怎麼了?

回答

1
Process p = Runtime.getRuntime().exec("java -cp D:/ Test"); 

這會運行你的程序,但你看不到輸出。您需要從流程中獲取輸入信息,請使用以下代碼:

BufferedReader stdInput = new BufferedReader(new 
    InputStreamReader(p.getInputStream())); 

BufferedReader stdError = new BufferedReader(new 
    InputStreamReader(p.getErrorStream())); 

// read the output from the command 
System.out.println("Here is the standard output of the command:\n"); 
String s = null; 
while ((s = stdInput.readLine()) != null) { 
    System.out.println(s); 
} 
+0

非常感謝!很好的解釋! – codingsplash 2015-04-06 07:16:21

+0

您的歡迎:) – 2015-04-06 08:24:58

0

您需要從Process中獲取InputStream並讀取輸入。

+0

這不會提供問題的答案。要批評或要求作者澄清,請在其帖子下方留言。 – 2015-04-06 11:01:23

+0

它確實提供了一個答案,答案基本上與接受的答案相同,但較爲詳細。你爲什麼冒犯? – Ozgen 2015-04-06 16:52:57

+0

我不是冒犯了哥們。我知道你很好,但我只是遵循Stack Overflow社區評論指南。答案應該有更多的解釋。這個答案在評論部分中顯示給我。 – 2015-04-07 05:04:30