2015-04-06 82 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