Java 需要指导以自动化多个.bat文件流程
我想用Java创建一个实用程序来自动化我们的构建过程。目前的进程包括Java 需要指导以自动化多个.bat文件流程,java,automation,console,batch-file,Java,Automation,Console,Batch File,我想用Java创建一个实用程序来自动化我们的构建过程。目前的进程包括 为服务器打开2个控制台。(我想从java程序打开这些控制台) 在控制台中运行多个bat文件,并基于一个批处理文件输出,运行其他命令 我需要领先,我应该使用什么库。我可以从Java(独立)打开2个控制台吗。即使我的程序关闭了,这些控制台也会继续运行。(控制台是bea服务器,startweblog.cmd) 您当然可以打开任意数量的控制台。如果希望同时执行此操作,请创建单独的线程,然后使用Runtime.exec()或Proc
- 为服务器打开2个控制台。(我想从java程序打开这些控制台)
- 在控制台中运行多个bat文件,并基于一个批处理文件输出,运行其他命令李>
我需要领先,我应该使用什么库。我可以从Java(独立)打开2个控制台吗。即使我的程序关闭了,这些控制台也会继续运行。(控制台是bea服务器,startweblog.cmd) 您当然可以打开任意数量的控制台。如果希望同时执行此操作,请创建单独的线程,然后使用Runtime.exec()或ProcessBuilder创建进程 但你为什么要这么做?有一个很好的ant,它是专门用于此类任务的构建工具。它支持一切,并且可以使用自定义任务进行扩展 此外,如果您突然想起现在是2011年,请使用更新的工具,如ApacheBuildr。Java的类有一些方法可以启动,这些方法具有与输入/输出流和其他管理的编程接口。但是,我不确定Windows如何处理双亲已死亡的进程
你也应该考虑使用VB或JScript,因为你可能会有更好的控制。
< P> Alee,是的,你可以用运行时来做。GeRunTunMe()。Exc.(“文件.BAT”);然后有两个选项,可以捕获执行的输出 例如:public static void main(String[] args) {
System.out.println("hello");
try {
Process p = Runtime.getRuntime().exec("./prog.sh");
InputStream in = p.getInputStream();
System.out.println("OUTPUT");
StringBuilder sb = new StringBuilder();
int c;
while( (c = in.read() ) > 0 ) {
sb.append((char) c);
}
//here the script finished
String output = sb.toString();
if( output.contains("Exception")) {
System.out.println("script failed");
}
if( p.exitValue() == 0) {
System.out.println("The script run without errors");
} else {
System.out.println("The script failed");
}
} catch (IOException e) {
e.printStackTrace();
}
}
这将捕获两种场景,您需要捕获输出,然后决定脚本是否成功运行,或者是否可以使用脚本的退出状态
exitValue代码为0表示成功,任何其他数字表示失败。谢谢您的指针。我当然不想重新发明轮子。但是如果它能在项目中帮助我的话,我肯定会调查的。问题是这个项目已经非常成熟,并且已经使用了至少10-16个ant脚本。这些文件依次由.bat文件运行。我正在考虑自动化那些.bat文件来处理ant脚本扫描,我在这个输出中搜索特定的字符串?该控制台中可能会引发异常,以正确的退出代码结束控制台。但由于异常,进程未完成。我如何处理它呢?在Windows中,我相信您必须使用exec'd进程的stdout/stderr流才能完成它。