【发布时间】: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