Java中等效于Python的subprocess.Popen()的是什么?

4 投票
3 回答
3398 浏览
提问于 2025-04-16 04:10

当然可以!请看下面的内容:

这个问题主要是关于如何在编程中处理一些常见的错误和问题。很多时候,程序在运行时可能会出现意想不到的情况,比如输入不符合要求,或者程序无法找到某个文件。这些问题如果不处理好,就会导致程序崩溃或者无法正常工作。

为了避免这些情况,程序员通常会使用一些技巧,比如在代码中加入检查和验证的步骤。这样一来,当程序遇到问题时,它可以给出友好的提示,而不是直接崩溃。比如,如果用户输入了错误的格式,程序可以提醒用户重新输入,而不是让程序停止运行。

此外,程序员还会使用日志记录功能,这样可以在程序出现问题时,查看记录的内容,帮助找到问题的根源。这就像是给程序装上了一个“监控摄像头”,可以回放查看发生了什么。

总之,处理程序中的错误和问题是编程中非常重要的一部分,掌握这些技巧可以让你的程序更加稳定和用户友好。

import subprocess
import os

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

3 个回答

1

使用 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);
}
2

你问的问题不太清楚,不过如果你是在找Java中和Popen()相似的功能,那你可以使用Runtime.exec()这个方法。

6

你可以试试用 Runtime.exec 这个方法。

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

这个方法会返回一个 Process 对象,你可以用它来:

  • 获取这个进程的输出、输入和错误信息
  • 获取这个进程的输出代码
  • 结束这个进程
  • 等待这个进程执行完毕

撰写回答