【问题标题】:What is the Java equivalent of Python's subprocess.Popen()?Python 的 subprocess.Popen() 的 Java 等价物是什么?
【发布时间】:2011-04-12 15:11:02
【问题描述】:
import subprocess
import os

prefix = os.path.expanduser("~/.bin/kb/")
p = subprocess.Popen([(prefix + "koreball"),(prefix + "/data"),'3'])

【问题讨论】:

    标签: java python subprocess


    【解决方案1】:

    您可以尝试使用Runtime.exec 方法。

    Runtime runtime = Runtime.getRuntime();
    Process process = runtime.exec("myprocess");
    

    该方法返回一个Process,可用于:

    • 检索进程输出、输入和错误流
    • 检索进程输出代码
    • 杀死进程
    • 等待流程执行结束

    【讨论】:

    • python 版本是否会遇到与 java 相同的内存问题,因为 os fork?
    【解决方案2】:

    不清楚您在问什么,但如果您正在寻找 Popen() 的 Java 等效项,您需要 Runtime.exec()

    【讨论】:

      【解决方案3】:

      使用ProcessBuilder 例如

      static void SimpleProcess() throws IOException, InterruptedException {
      
          ProcessBuilder pb = new ProcessBuilder("ls", ".")
                  .inheritIO();
      
          Process p = pb.start();
      
          int retval = p.waitFor();
          System.out.println("exited with code "  + retval);
      }
      

      【讨论】:

        猜你喜欢
        • 2011-01-04
        • 2016-10-30
        • 2011-01-04
        • 2011-04-13
        • 2016-12-06
        • 1970-01-01
        • 1970-01-01
        • 2011-09-03
        • 2011-03-07
        相关资源
        最近更新 更多