java process.waitfor 返回1 解决

本文探讨了Java中使用Process执行外部命令时返回1的具体原因,包括命令字符串中的空格问题、命令路径问题以及命令执行所需的环境配置问题。此外,还讨论了当目标文件被占用时如何解决Process执行失败的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java的process,在执行命令时,出现waitfor返回1错误。根据java文档,是operation not permited。但绝大多数情况下,这是瞎扯。


真正原因是,你执行的命令(dos或linux下的命令),java的process执行时候,出错了。而错误本身是在这个命令的字符串上。大致的原因如下:

1. 字符串中包含额外的空格,导致命令不对。比如文件名之类的。解决方案,无非用引号把文件名之类的参数引起来

2. 还一个比较恶心的是,执行的命令,你最好用绝对路径。很多情况下,你要执行的工具可能放在系统默认的路径下,这种情况下,你直接在dos窗口或linux命令行下,执行都是正常的,但是一到程序中,就死活返回1的错误。

3. 另一个process执行返回1的原因可能是:进程执行所需的环境不正确。

当然,我碰到的问题不属于上面情况。Process里执行的shell脚本要操作文件,结果这个文件在其它地方被占用了,导致process执行失败

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值