gpt4 book ai didi

java - 在 Java 中运行 AWS CLI bash 命令时出现问题

转载 作者:行者123 更新时间:2023-12-02 08:53:06 26 4
gpt4 key购买 nike

我正在尝试在 Java 代码中(在 Linux 中)运行 AWS 命令​​。像往常一样,我尝试在 Java 中像这样运行 bash 命令。但我想知道它没有显示任何东西。并且只打印 Exited with error code : 2。当我在 bash 中运行 aws ls help 时,它就可以工作。

有什么问题吗?怎么解决?

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class TestCMD {
public static void main(String[] args) {
ProcessBuilder processBuilder = new ProcessBuilder();
processBuilder.command("bash", "-c", "aws ls help");

try {
Process process = processBuilder.start();
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));

String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
int exitCode = process.waitFor();
System.out.println("\nExited with error code : " + exitCode);
} catch (Exception e) {
e.printStackTrace();
}
}
}

最佳答案

Java 代码不是问题。它工作正常,您可以通过将 command 替换为

来检查
processBuilder.command("bash", "-c", "echo 1 2 3");

您有 2 个“问题”。第一个问题是 aws 将其输出写入 stderr,而不是 stdout。
第二个问题是 aws 返回 2,其中 0 恕我直言会更好。
您可以使用以下命令在命令行上进行测试:

aws ls help 2>/dev/null; echo $?

问题可以通过以下方式解决

processBuilder.command("bash", "-c", "/usr/bin/aws ls help 2>&1; true");

关于java - 在 Java 中运行 AWS CLI bash 命令时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60659988/

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