首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

正在尝试在Java中将Unix命令的输出作为字符串返回...没有得到预期的结果

在Java中将Unix命令的输出作为字符串返回,可以使用Java的ProcessBuilder类来实现。ProcessBuilder类提供了执行外部命令的功能,并且可以获取命令的输出结果。

下面是一个示例代码,演示如何在Java中执行Unix命令并将输出作为字符串返回:

代码语言:txt
复制
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

public class UnixCommandExecutor {
    public static String executeCommand(String command) {
        StringBuilder output = new StringBuilder();

        try {
            ProcessBuilder processBuilder = new ProcessBuilder();
            processBuilder.command("bash", "-c", command);

            Process process = processBuilder.start();

            // 读取命令的输出
            InputStream inputStream = process.getInputStream();
            BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));

            String line;
            while ((line = reader.readLine()) != null) {
                output.append(line).append("\n");
            }

            // 等待命令执行完成
            int exitCode = process.waitFor();
            if (exitCode != 0) {
                // 命令执行失败
                throw new RuntimeException("Command execution failed with exit code: " + exitCode);
            }

        } catch (IOException | InterruptedException e) {
            e.printStackTrace();
        }

        return output.toString();
    }

    public static void main(String[] args) {
        String command = "ls -l";
        String output = executeCommand(command);
        System.out.println(output);
    }
}

上述代码中,我们使用ProcessBuilder类创建一个外部进程,并执行Unix命令。通过调用getInputStream()方法获取命令的输出流,然后使用BufferedReader逐行读取输出内容,并将其添加到StringBuilder中。最后,将StringBuilder转换为字符串并返回。

请注意,上述代码仅适用于Unix系统,如果在Windows系统上运行,需要修改命令的执行方式。

对于这个问题,推荐腾讯云的云服务器(CVM)产品,它提供了强大的计算能力和灵活的配置选项,适用于各种应用场景。您可以通过以下链接了解更多关于腾讯云云服务器的信息:腾讯云云服务器

希望以上信息能够帮助到您!如果还有其他问题,请随时提问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的沙龙

领券