在java中为运行时exec提供缓冲输入

时间:2013-12-25 03:24:31

标签: java runtime

这是我在其他java应用程序中运行java文件的代码,但如果程序只采用缓冲输入,我不知道该怎么办?

try {

Runtime rt = Runtime.getRuntime();

// compile the java file
Process pr = rt.exec("javac Main.java");
pr.waitFor();

// run the java file
pr = rt.exec("java Main " + inputs.toString()); // using this i can give command line arguments 
pr.waitFor();
}

这是我的代码,我可以在运行时给出命令行参数,但是如果我想给程序提供bufferedinput呢?

提前致谢

1 个答案:

答案 0 :(得分:1)

你说:

  

这是我在其他java应用程序中运行java文件的代码,但如果程序只采用缓冲输入,我不知道该怎么办?

要附加到其他流程输入和输出流,请查看您要找到的API for the Process class并使用getErrorStream()getInputStream()getOutputStream()方法。然后,您可以将输入和输出以及错误流包装在各自的缓冲流中。

但请注意,您应该警惕常见的陷阱,这些陷阱在稍微过时的文章When Runtime Exec Won't

中有详细解释

说完这些之后,你最好不要使用Java类,而不是在另一个JVM中运行它。你有什么理由不这样做吗?什么是"缓冲"输入