当前页面: 开发资料首页 → J2SE 专题 → Runtime.getRuntime().exec如果执行的".bat"有错误,那么就死了,如何解决?(在线)
Runtime.getRuntime().exec如果执行的".bat"有错误,那么就死了,如何解决?(在线)
摘要: Runtime.getRuntime().exec如果执行的".bat"有错误,那么就死了,如何解决?(在线)
1、Runtime.getRuntime().exec(cmd.bat)如果cmd.bat可以正常执行,那么java程序很快就执行完了了,但是如果cmd.bat执行过程中有一些错误(在操作系统MS_DOS下,过一段时间也能执行完),此时Process p = Runtime.getRuntime().exec(cmd.bat);就没有响应了,请问如何能解决这个问题?
2、又没有其他可以代替Runtime.getRuntime().exec的类?
应该是没有可以取代的。
针对第一个问题,你可以在一个线程中去调用exec。
如果要同步的话,你可以wait加上超时等机制来做。
帮你UP
没遇到过这种问题
再写一个bat,用windows的 start命令调用exe(限于windows)
保证那个批处理正常的运行..
TO:healer_kx(<正统天降甘草>http://healerkx.spaces.live.com/)
>针对第一个问题,你可以在一个线程中去调用exec。
>如果要同步的话,你可以wait加上超时等机制来做。
能具体一点吗?尤其是加上wait超时?
谢谢
Process p = Runtime.getRuntime().exec("cmd.bat",null,dir);//dir为路径
或者Process p = Runtime.getRuntime().exec(“cmd.bat”);