提问人:Aahlad Kethineedi 提问时间:12/1/2021 更新时间:12/1/2021 访问量:38
如何使用 Runtime.getRuntime.exec() 为一个 Java 程序提供输入,该程序作为输入提供给另一个 Java 程序?
How to give input to a Java program which is fed as input to another Java Program using Runtime.getRuntime.exec()?
问:
这是代码。它采用 SampleProg.java 作为输入。我无法提供 SampleProg.java 的输入。
我正在寻找的是编译、运行和输入程序的测试用例。
我尝试使用缓冲编写器,但无法写入输入程序。
它在提供输入时卡住了。
我怎样才能提供输入。我被困在我提供输入的部分,它没有进一步处理。我也尝试使用ProcessBuilder,但我遇到了同样的问题。
法典: 示例.java
public class Example {
public static void main(String[] args) {
try{
String path = "src/main/java/SampleProg.java";
compile(pathJava);
Process runProcess = run();
runProcess.waitFor();
BufferedReader in = new BufferedReader(new
InputStreamReader(runProcess.getInputStream()));
String s;
Scanner sc = new Scanner(System.in);
while((s = in.readLine()) != null){
System.out.println(s);
op.write(sc.nextInt());
op.close();
}
}
catch(Exception e){
e.printStackTrace();
}
}
private static void compile(String pathJava) throws
IOException, InterruptedException {
String [] cmd = new String[4];
cmd[0] = "javac";
cmd[1] = "-d";
cmd[2] = ".";
cmd[3] = pathJava;
Runtime r = Runtime.getRuntime();
Process compileProcess = r.exec(cmd);
compileProcess.waitFor();
}
private static Process run() throws IOException {
String [] cmd = new String[2];
cmd[0] = "java";
cmd[1] = "SampleProg";
Runtime r = Runtime.getRuntime();
return r.exec(cmd);
}
}
答: 暂无答案
评论