如何使用 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()?

提问人:Aahlad Kethineedi 提问时间:12/1/2021 更新时间:12/1/2021 访问量:38

问:

这是代码。它采用 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);
          }
          }

Java 运行时

评论

0赞 hfontanez 12/2/2021
这回答了你的问题吗?使用 Runtime#exec() 编译和执行 Java 代码
0赞 VGR 12/2/2021
如果您正确地缩进代码,您将获得更多有用的答案和评论。格式正确的代码更容易被人们阅读。
0赞 Aahlad Kethineedi 12/2/2021
仍然没有解决方案。

答: 暂无答案