社区
Java SE
帖子详情
Runtime 调用exec方法生成的子进程,如何关闭?
wzy9645
2003-10-15 11:34:17
如果用p.destroy()的话,我并不知是否已经执行结束了,这时关闭不合适
如果用waitFor()的话,出现了阻塞.
谢
...全文
372
8
打赏
收藏
Runtime 调用exec方法生成的子进程,如何关闭?
如果用p.destroy()的话,我并不知是否已经执行结束了,这时关闭不合适 如果用waitFor()的话,出现了阻塞. 谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wzy9645
2003-10-15
打赏
举报
回复
读了,出现阻塞的情况,也就是读不出来控制台的输出.
exec执行的是数据库备份语句.
LoveRose
2003-10-15
打赏
举报
回复
如果用exec执行的子进程也是你自己写的话
可以在子进程运行完成后system.out.println()输出提示信息
然后在父进程中得到process.getInputStream()
读出字进程的输出
判断后调用p.destroy();
wzy9645
2003-10-15
打赏
举报
回复
上面是代码,
strCmd 如果是 dir 则正常
如果是备份语句 exp ....则无输出,进程也结束不了.
wzy9645
2003-10-15
打赏
举报
回复
Runtime sys=Runtime.getRuntime();
Process p=sys.exec("cmd.exe /c "+strCmd);
//得到命令返回数据
DataInputStream in=new DataInputStream(p.getInputStream());
BufferedReader reader=new BufferedReader(new InputStreamReader(in));
String line;
while((line=reader.readLine())!=null){
System.out.println(line);
}
reader.close();
in.close();
p.destroy();
wzy9645
2003-10-15
打赏
举报
回复
exec执行的是Oracle数据库备份语句.
不知为什么备份的反回语句的确取不到,不是标准输出吗?
okwuzhijun
2003-10-15
打赏
举报
回复
自生自灭
LoveRose
2003-10-15
打赏
举报
回复
小问题也搞定了
用while循环读就可以了
LoveRose
2003-10-15
打赏
举报
回复
这个问题着实把我郁闷了一把
我做了个测试程序,用我说的方法是可行的
我的子进程是一个dialog,包含一个button
button点击时打印over
在父进程中,得到子进程的输出,判断是over则p.destroy();
这样是可以的。
不过出现一点小问题
父进程得到流时,只能read到子进程的第一次输出。
fork
生成
子进程
与执行
exec
子进程
的区别
背景 项目中想使用多进程的模式。一个控制进程,加上N个工作进程。即是master+worker进程的模式,与nginx的进程模式类似的思路。master创建并管理worker进程,而且他们之间需要能够进行通信。设计思路如下图所示: 遇到问题 如何创建woker进程 linux系统下,创建进程,肯定使用fork来做系统
调用
。然后fork之后,我们通过ps看到
子进程
名称也是master,从使用角度来...
java
runtime
exec
结果,Java
Runtime
exec
()
方法
Java
Runtime
exec
()
方法
java.lang.
Runtime
.
exec
(String command, String[] envp, File dir)
方法
在指定环境和工作目录的独立进程中执行指定的字符串命令。这是一个方便的
方法
。
exec
(command, envp, dir)
调用
行为完全相同于
调用
exec
(cmdarray, envp, dir),其中cmdarray是命令的...
Runtime
.
exec
陷阱
该类java.lang.
Runtime
具有一个称为的静态
方法
get
Runtime
(),该
方法
检索当前的Java
Runtime
Environment。这是获得对该
Runtime
对象的引用的唯一
方法
。使用该参考,您可以通过
调用
Runtime
类的
exec
()
方法
来运行外部程序。开发人员经常
调用
此
方法
来启动浏览器,以显示HTML的帮助页面。 该
exec
()命令有四个重载版本: public Process
exec
(String command); public Process
exec
(String [
Runtime
.
exec
()备份MySQL数据库的问题
Runtime
.
exec
()备份MySQL数据库出现的问题关于waitFor()堵塞关于备份数据库为空的问题问题1解决方案问题2解决方案总结 前几天在用
Runtime
搞数据库备份,其实也就是使用
Runtime
.
exec
()
调用
mysqldump的指令来备份数据库,由于没怎么接触过
Runtime
这个类,遇到了一些问题,头发差点都给我撸秃了,先是waitFor(),然后是备份数据库,文件出来了,但是是...
Runtime
的
exec
方法
Runtime
类,是一个与JVM运行时环境有关的类,这个类是Singleton的。说几个自己觉得重要的地方。 1、
Runtime
.get
Runtime
()可以取得当前JVM的运行时环境,这也是在Java中唯一一个得到运行时环境的
方法
。 2、
Runtime
上其他大部分的
方法
都是实例
方法
,也就是说每次进行运行时
调用
时都要用到get
Runtime
方法
。 3、
Runtime
中
Java SE
62,614
社区成员
307,327
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章