【问题标题】:Batch Failing Output Length Limitation批量失败输出长度限制
【发布时间】:2015-08-28 16:08:26
【问题描述】:

我正在尝试通过 Java 中的 Runtime 类运行批处理文件。

import java.io.*;
import java.lang.*;

public class TestExec {
    public static void main(String[] args) {
        try {

        Process proc;
            Runtime runtime = Runtime.getRuntime();
            proc = runtime.exec("C:\\test.bat");
            Thread.sleep(5000);

        } catch (IOException e) {
            e.printStackTrace();
        System.out.println("End of file reached: " + e.getMessage());
        } catch (InterruptedException e){
        e.printStackTrace();
        System.out.println("End of file reached: " + e.getMessage());
    }

    System.out.println("end");
    }
}

test.bat

echo "It is a test"
echo  "line3"
echo  "line4"
echo  "line5"
echo  "line6"
echo  "line7"
echo  "line8"
echo  "line9"
echo  "line10"
echo  "line11"
echo  "line12"
echo  "line13"
echo  "line14"
echo  "line15"
echo  "line16"
echo  "line17"
echo  "line18"
echo  "line19"
echo  "line20"
echo  "line21"
echo  "line22"
echo  "line23"
echo  "line24"
echo  "line25"
echo  "line26"
echo  "line27"
echo  "line28"
echo  "line29"
echo  "line30"
echo  "line31"
echo  "line32"
echo  "line33"
echo  "line34"
echo  "line35"
echo  "line36"
echo  "line37"
echo  "line38"
echo  "line39"
echo  "line40"
echo  "line41"
echo  "line42"
echo  "line43"
echo  "line44"
echo  "line45"
echo  "line46"
echo  "line47"
echo  "l....."

脚本失败,似乎是对输出的数据量有限制。如果我在文件开头使用@echo off,输出限制似乎会增加。我还测试运行与C:\test.bat >> C:\output.txt 2>&1 相同的批处理文件命令,它可以工作。将输出重定向到 .txt 使脚本运行时没有错误。有没有人知道为什么会发生这种情况?有没有办法增加可以输出的数据量?

我正在从控制台运行 java 可执行文件。平台是windows 7。 谢谢。

输出是这样的:

    C:\app\aime\gc_inst\user_projects\domains\GCDomain>echo "line3" 
"line3"C:\app\aime\gc_inst\user_projects\domains\GCDomain>echo "line4" 
"line4"C:\app\aime\gc_inst\user_projects\domains\GCDomain>echo "line5" 
"line5"C:\app\aime\gc_inst\user_projects\domains\GCDomain>echo "line6" 
"line6"C:\app\aime\gc_inst\user_projects\domains\GCDomain>echo "line7" 
"line7"C:\app\aime\gc_inst\user_projects\domains\GCDomain>echo "line8" "line8"

到此结束。

【问题讨论】:

  • 在什么环境下它不起作用?从命令行?在你的ide里面?其他?
  • 失败是什么意思?您能粘贴您看到的确切错误消息吗?
  • 我在帖子中添加了对您问题的回复。

标签: java batch-file output stdout


【解决方案1】:

通过 cmd.exe 试试。

Runtime.getRuntime().exec(new String[] {"cmd.exe", "/c", "C:\\test.bat"});

我通常也使用ProcessBuilder

【讨论】:

  • 问题依旧。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-05-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多