中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-10 02:35
47,811 主题排行 / 349,897 发帖 / 今日 2 篇 / 48,255 会员排行
DOS批处理 & 脚本技术(批处理室) » [求助]关于JAVA调用BAT的问题
可打印版本  1,084 / 5
第1楼 dhn269 发表于 2008-10-14 16:55
新手上路 发帖 3 积分 8
[求助]关于JAVA调用BAT的问题
1.我在java中调用BAT时,发现java只是调起BAT,并不等待BAT执行完,Process中的waitFor()方法也不管用,往往是进程已经结束了,但Java还认为没结束,或者干脆是Java认为结束了,但进程却实际还在运行着。请问有什么办法解决呢?
2.java能获取BAT退出时返回的errorlevel值吗?
查了一下午了 实在找不到
谢谢
第2楼 huahua0919 发表于 2008-10-14 17:33
银牌会员 发帖 780 积分 1,608
把你用JAVA调用BAT的程序贴出来看看
第3楼 dhn269 发表于 2008-10-14 18:32
新手上路 发帖 3 积分 8
用下面这个倒是可以解决调用不等待的问题了,但是“2.java能获取BAT退出时返回的errorlevel值吗?”还是没什么头绪
第4楼 huahua0919 发表于 2008-10-14 19:08
银牌会员 发帖 780 积分 1,608
上面的程序中用
while ((c = in.read()) != -1)
来判断程序是否结束,其实也可以创建一个线程,并分配一把锁给这个线程,当程序结束后再归还给main,基本可以实现效果
至于你说的errorlevel返回值,在JAVA中我没听说过,也许是我寡闻,一般的方法返回类型都会在你方法名前定义好的,即使异常的也是通过Try进行捕获!
不知你有何高见
第5楼 junchen2 发表于 2008-10-14 19:58
高级用户 发帖 219 积分 537 来自 杭州--半山
start去掉试一试,
PS,代码都没用帖全try catch语句貌似都有错误。本人java知道一点皮毛哈。
第6楼 dhn269 发表于 2008-10-14 22:07
新手上路 发帖 3 积分 8
Originally posted by huahua0919 at 2008-10-14 19:08:
上面的程序中用
while ((c = in.read()) != -1)
来判断程序是否结束,其实也可以创建一个线程,并分配一把锁给这个线程,当程序结束后再归还给main,基本 ...

1.谢谢你的解释,这个程序没什么问题,确实实现那个效果了
2.我说的得到ERRORLEVEL是这个意思:

这个批处理程序完成以后,会返回234,我用JAVA调用这个批处理后想得到这个234,不知道该怎么写
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023