gpt4 book ai didi

带有 EOF 的 java 运行 shell 命令

转载 作者:行者123 更新时间:2023-11-30 11:10:34 25 4
gpt4 key购买 nike

我想从 java 运行这个命令,但我做不到。你能帮我吗?当我尝试从 ssh 运行它时,它工作正常。

String cmd="myprog -t << EOF显示版本EOF";

进程p = Runtime.getRuntime().exec(cmd);

最佳答案

您的命令正在写入您流程中的标准。您可以改为从您的 Java 代码写入该进程。类似的东西,

String cmd = "myprog -t";
String arg = "show version";
try {
Process p = Runtime.getRuntime().exec(cmd);
PrintStream ps = new PrintStream(p.getOutputStream());
ps.println(arg);
ps.flush();
final StringBuilder sb = new StringBuilder();
final InputStream is = p.getInputStream();
Thread t = new Thread(new Runnable() {
@Override
public void run() {
try (BufferedReader br = new BufferedReader(
new InputStreamReader(is))) {
String line;
while ((line = br.readLine()) != null) {
sb.append(line).append(System.lineSeparator());
}
} catch (Exception e) {
e.printStackTrace();
}
}
});
t.start();
try {
p.waitFor();
} catch (InterruptedException e) {
e.printStackTrace();
}
try {
t.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(sb.toString());
} catch (IOException e) {
e.printStackTrace();
}

关于带有 EOF 的 java 运行 shell 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27658478/

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