gpt4 book ai didi

java - 将 shell 脚本的输出放入 Java 程序中的变量中

转载 作者:行者123 更新时间:2023-11-29 08:52:31 25 4
gpt4 key购买 nike

有没有办法将 shell 脚本程序的输出转换为 Java 程序中的变量(而不是输出文件)。我的 shell 脚本的输出是数据库查询执行时间,我需要将该时间值分配给 Java 变量。 (我正在从 Java 程序中调用该 shell 脚本)。然后我需要用 Java 对这些值进行一些其他计算。

最佳答案

旧问题更新

自 Java 7 以来,有一个可以轻松处理操作系统进程的新类:ProcessBuilder.
假设我们需要将ip_conf.bat 的输出存储到java String 中。 c:\tmp\ip_conf.bat

的内容
@echo off
REM will go to standard output
ipconfig
REM will go to stadnard error
hey there!

您可以读取连接到子进程的标准和错误输出的输入流:

ProcessBuilder pb = new ProcessBuilder("C:\\tmp\\ip_conf.bat");
Process p = pb.start();
String pOut = "";
try (InputStream stdOut = p.getInputStream();
BufferedInputStream bufferedStdOut = new BufferedInputStream(stdOut);
ByteArrayOutputStream result = new ByteArrayOutputStream()) {

int bytes = 0;
while ((bytes = bufferedStdOut.read()) != -1) {
result.write(bytes);
}
pOut = result.toString(Charset.defaultCharset().toString());
}
System.out.println(pOut);

InputStream stdErr = p.getErrorStream();
// same with the error stream ...

int exit = p.waitFor();
System.out.println("Subprocess exited with " + exit);

关于java - 将 shell 脚本的输出放入 Java 程序中的变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22000318/

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