小编lou*_*Hou的帖子

java ProcessBuilder运行的shell脚本已挂起

我正在尝试使用ProcessBuilder运行Shell脚本。该脚本可以运行,但是不能在Java代码之后运行。错误流不会输出消息。我正在centOS 6.9计算机上运行它。请在下面找到我的代码。

public static ArrayList<String> runCommand(ArrayList<String> command)throws IOException {

        ProcessBuilder processBuilder = new ProcessBuilder();
        processBuilder.command(command);
        Process process = processBuilder.start();
        BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
        BufferedReader errorReader = new BufferedReader(new InputStreamReader(process.getErrorStream()));

        ArrayList<String> commandOutput = new ArrayList<>();
        String str;
        while((str = reader.readLine()) != null) {
            commandOutput.add(str);
        }

        StringBuilder errorBuilder = new StringBuilder();
        while((str = errorReader.readLine()) != null) {
            errorBuilder.append(str);
        }

        String errorMessage = errorBuilder.toString();
        if(!errorMessage.equals("")) {
            String message = LOG_TAG + ",[runCommand] error:" + errorMessage;
            System.out.println(message);
        }

        reader.close();
        errorReader.close();
        process.destroy();

        return …
Run Code Online (Sandbox Code Playgroud)

java

5
推荐指数
1
解决办法
73
查看次数

标签 统计

java ×1