缓冲读取器在Java中执行Linux命令时在最后一行添加“ [?1034h”作为最后一行

问题描述

我正在使用processBuilder在Java中执行linux命令,但它将[?1034h添加为最后一行。

它正在打印所有行,但是在我预期的最后一行之后,它会添加带有这些字符的另一行。

我的代码

 ProcessBuilder processBuilder = new ProcessBuilder();

        // -- Linux --

        // Run a shell command
        processBuilder.command("bash","-c","sudo /usr/sbin/ilorest load -f "+biossource);

    

        try {

            Process process = processBuilder.start();

             output = new StringBuilder();

            BufferedReader  reader = new BufferedReader(
                    new InputStreamReader(process.getInputStream()));

            String line;
            while ((line = reader.readLine()) != null) {
                output.append(line);
            }
             BufferedReader stdError = new BufferedReader(new 
                     InputStreamReader(process.getErrorStream()));
                     
                     System.out.println("Here is the standard error of the command (if any):\n");
                while ((line = stdError.readLine()) != null) {
                    output.append(line);
                    System.out.println(line);
                }
            int exitVal = process.waitFor();
            if (exitVal == 0) {
                System.out.println("Success!");
                System.out.println(output);
                System.exit(0);
            } else {
                //abnormal...
            }

我还把输出写到了文件上,即使在那里也显示了相同的内容

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)