java 可以处理win32异常么? 本帖最后由 ok0932 于 2009-11-13 00:45:23 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你可以试试直接catch(Exception e),如果这都不行,那可能就不行了。exec方法声明中的throws IOException应该指的是启动新进程的过程中可能发生的异常,当进程被启动起来,自己去运行之后,所发生的事情就不是JVM能控制的了。举个极端的例子,假如新进程是个格式化磁盘的程序,JVM如何控制得了? 谢谢楼上的哥们,不过我写的是个服务器程序,像这样的exe本身的异常必须对其处理,如果异常,系统会弹出应用程序异常提示窗口,有确定和取消,作为服务器,不可能人为去单击确定或者取消,没办法,只能解决了。我自己也感觉好像行不通,有点郁闷。 如果正常启动了 就调用process的getErrorStream() 方法 ,while循环监控是否有error信息输入 如果输入错误信息 那肯定是异常了吧 没用过,只是建议 getErrorStream 是 stderr 输出,不是这回事。 谢谢3楼朋友的指点,我利用你说的方法做了测试,很高兴地告诉你异常窗口没有再弹出,代码如下: try { String cmdSt = "cmd.exe /c " + workPath + "/" + fileName; process = Runtime.getRuntime().exec(cmdSt, null, dir); BufferedInputStream bis = new BufferedInputStream(process.getErrorStream()); if (!bis.equals(null)) { process.destroy(); } process.waitFor(); } catch (IOException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } public Process exec(String command,String[] envp) 错误流 题目是显示符合条件的File 对象 怎么样算出一个整形数组中的不同的元素的个数 有待高手解释 inner class存在的意义 一个字符串的问题 高手救命啊!!!在线等 爆急!!!!!!!! 关于树的焦点 请问有谁在Weblogic6下面配过连接池? 谁的网速快,帮我DOWN点东西,谢谢! 关于java读取串口信息 ntml认证问题 关于struts1 的sql注入问题
exec方法声明中的throws IOException应该指的是启动新进程的过程中可能发生的异常,当进程被启动起来,自己去运行之后,所发生的事情就不是JVM能控制的了。举个极端的例子,假如新进程是个格式化磁盘的程序,JVM如何控制得了?
try {
String cmdSt = "cmd.exe /c " + workPath + "/" + fileName;
process = Runtime.getRuntime().exec(cmdSt, null, dir);
BufferedInputStream bis = new BufferedInputStream(process.getErrorStream());
if (!bis.equals(null)) {
process.destroy();
} process.waitFor();
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}