关于Java中调用dos命令问题

Brightzliu 2009-06-11 03:52:07
在我的Java程序中,想通过调用dos命令,去执行一个python脚本,然后再下载该python脚本生成的文件到本地。

问题代码地方:
strCmd = "cmd /c python "C:/prdcfg_convert.py" -i "C:/prdcfg_BLAZE.txt" -o "C:/123.bin"
Process child = Runtime.getRuntime().exec(strCmd);//这个能执行成功,因为生成后能打开123.bin,并且结果正确。
child.waitFor();
Download(strFile)//strFile文件为上面命令执行后的结果,在Download()函数中,查看该文件大小为0,我在调试时候,将strFile="C:/123.txt",能下载成功啊。 所以问题可能出现在调用dos命令的进程没有执行完。

不知道怎么解决,哪位有过相关经验啊?
...全文
98 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
yanhan0615 2009-06-11
  • 打赏
  • 举报
回复
我个人感觉,应该是Process child是在运行dos命令结束以后就返回了,相当于dos执行的命令去重新启动了一个进程去执行;
是否这样楼主可以做一个验证,在waitFor后面做打印,看到打印数据以后用进程管理看看下载进程是否还在,如果还在就证明是我猜想的情况;

如果是的话可以用一些其他的量来做这个判断,例如测试长度小于特定值就等待。。。
Brightzliu 2009-06-11
  • 打赏
  • 举报
回复
我问的问题很怪么?
goodmrning 2009-06-11
  • 打赏
  • 举报
回复
帮顶下!

62,614

社区成员

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

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