runtime.getruntime().exec(batch file)

CNSuper 2004-07-19 01:45:29
public class RunBatch
{
public static void main(String[] args)
{
String cmd = "C:/x.bat";
try
{
Process process = Runtime.getRuntime().exec(cmd);
System.out.println("execute batch file " + cmd);
int exitCode = process.waitFor();
System.out.println("exitCode = " + exitCode);
if (exitCode == 0)
{
System.out.println("successful");
}
else
{
System.out.println("failed");
}
}
catch(InterruptedException e)
{
e.printStackTrace();
}
catch(IOException e)
{
e.printStackTrace();
}
}
}
------------------------------------------------
C:/x.bat
net stop "Apache Tomcat 4.1" && net start "Apache Tomcat 4.1"
------------------------------------------------
当 Tomcat 服务处于停止状态的时候,运行 RunBatch.main()
因为在执行 net stop 的时候发生错误,它可以正常的监测到错误的发生
当 Tomcat 服务处于启动状态的时候,运行 RunBatch.main()
程序再 waitFor() 指出处于 blocked 状态,执行不下去了!!!!

各位达人帮帮忙!看看问题在什么地方?
...全文
146 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
ChDw 2004-07-19
  • 打赏
  • 举报
回复
你需要得到process.getInputStream() 并且一直读取这个流才可以使得BAT执行下去
InputStream is = process.getInputStream();
while(is.read() >= 0);

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧