这是我在其他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呢?
提前致谢
答案 0 :(得分:1)
你说:
这是我在其他java应用程序中运行java文件的代码,但如果程序只采用缓冲输入,我不知道该怎么办?
要附加到其他流程输入和输出流,请查看您要找到的API for the Process class并使用getErrorStream()
,getInputStream()
和getOutputStream()
方法。然后,您可以将输入和输出以及错误流包装在各自的缓冲流中。
但请注意,您应该警惕常见的陷阱,这些陷阱在稍微过时的文章When Runtime Exec Won't
中有详细解释说完这些之后,你最好不要使用Java类,而不是在另一个JVM中运行它。你有什么理由不这样做吗?什么是"缓冲"输入