当前位置:编程学习 > JAVA >>

java 如何调用 exe程序 ,要求调用后,自己就退出

如题
Runtime.getRuntime().exec 可以用,但是调用 后,java程序不关闭,这样不符合客户的要求。

客户的需求是:

比方说Data.jar 是一个可执行程序,

使用Data.jar打开IE,完了自己就退出


我试着写了这样的代码
Runtime.getRuntime().exec("C:\\Propgram files\\internet Explorer\\iexplore.exe")
System.exit(0);

这段代码在Data.jar里面,我运行,发现在调用ie后, 程序并不退出,而是一直等待着ie,等ie退出后,才执行System.exit(0)。

有没有办法,让程序不等待ie,把两边独立 开? Runtimeexe   exe程序 --------------------编程问答-------------------- 再用Runtime调用dos命令Taskkill杀死进程。。 --------------------编程问答-------------------- 可以直接执行:Runtime.exec("C:\\Propgram files\\internet Explorer\\iexplore.exe")
getRuntime() 是返回与当前 Java 应用程序相关的运行时对象,所以你写成上面那样会等它返回 --------------------编程问答-------------------- 那应该怎么写呢,现在要求不等待它返回 --------------------编程问答-------------------- 令起一个线程执行exe方法 --------------------编程问答-------------------- Runtime的exec是不能满足的你可以用jdk1.6新增的Desktop类的open来做
具体的可以看他的api你甚至可以用他的browse方法直接打开浏览器定位url

Desktop desktop=Desktop.getDesktop();
desktop.open(new File("C:\\Propgram files\\internet Explorer\\iexplore.exe"));
desktop.browse(new URI("http://www.baidu.com"));
--------------------编程问答-------------------- 这应该很好理解吧,因为这个进程(浏览器进程)是由data.jar发起的,浏览器不关闭,这个进程也就不会destroy掉的。 --------------------编程问答-------------------- 建议使用 ProcessBuilder  --------------------编程问答--------------------
引用 7 楼 ysh512 的回复:
建议使用 ProcessBuilder 

ProcessBuilder和Runtime是一样的,因为Runtime的内部就是利用ProcessBuilder实现的。楼主的需求就是我说的jdk1.6新增的java.awt.Desktop所提供的。
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,