gpt4 book ai didi

java - 使用java apache默认执行器获取进程ID

转载 作者:行者123 更新时间:2023-12-01 23:56:02 25 4
gpt4 key购买 nike

我正在编写一个使用 apache 默认执行器运行命令行的代码。我找到了获取退出代码的方法,但找不到获取进程 ID 的方法。

我的代码是:

protected void runCommandLine(OutputStream stdOutStream, OutputStream stdErrStream, CommandLine commandLine) throws InnerException{
DefaultExecutor executor = new DefaultExecutor();
PumpStreamHandler streamHandler = new PumpStreamHandler(stdOutStream,
stdErrStream);
executor.setStreamHandler(streamHandler);
Map<String, String> environment = createEnvironmentMap();
try {
returnValue = executor.execute(commandLine, environment);
} catch (ExecuteException e) {
// and so on...
}
returnValue = e.getExitValue();
throw new InnerException("Execution problem: "+e.getMessage(),e);
} catch (IOException ioe) {
throw new InnerException("IO exception while running command line:"
+ ioe.getMessage(),ioe);
}
}

我应该怎么做才能获得ProcessID?

最佳答案

无法使用 apache-commons API(也无法使用底层 Java API )检索进程的 PID。

“最简单”的事情可能是让外部程序以这样的方式执行,即程序本身在其生成的输出中以某种方式返回其 PID。这样您就可以在 Java 应用程序中捕获它。

遗憾的是 java 不导出 PID。这是 over a decade 的功能请求。

关于java - 使用java apache默认执行器获取进程ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15601082/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com