java process.waitfor 返回1 解决
2016-05-26 12:11
1916 查看
java的process,在执行命令时,出现waitfor返回1错误。根据java文档,是operation not permited。但绝大多数情况下,这是瞎扯。
真正原因是,你执行的命令(dos或linux下的命令),java的process执行时候,出错了。而错误本身是在这个命令的字符串上。大致的原因如下:
1. 字符串中包含额外的空格,导致命令不对。比如文件名之类的。解决方案,无非用引号把文件名之类的参数引起来
2. 还一个比较恶心的是,执行的命令,你最好用绝对路径。很多情况下,你要执行的工具可能放在系统默认的路径下,这种情况下,你直接在dos窗口或linux命令行下,执行都是正常的,但是一到程序中,就死活返回1的错误。
3. 另一个process执行返回1的原因可能是:进程执行所需的环境不正确。
当然,我碰到的问题不属于上面情况。Process里执行的shell脚本要操作文件,结果这个文件在其它地方被占用了,导致process执行失败
真正原因是,你执行的命令(dos或linux下的命令),java的process执行时候,出错了。而错误本身是在这个命令的字符串上。大致的原因如下:
1. 字符串中包含额外的空格,导致命令不对。比如文件名之类的。解决方案,无非用引号把文件名之类的参数引起来
2. 还一个比较恶心的是,执行的命令,你最好用绝对路径。很多情况下,你要执行的工具可能放在系统默认的路径下,这种情况下,你直接在dos窗口或linux命令行下,执行都是正常的,但是一到程序中,就死活返回1的错误。
3. 另一个process执行返回1的原因可能是:进程执行所需的环境不正确。
当然,我碰到的问题不属于上面情况。Process里执行的shell脚本要操作文件,结果这个文件在其它地方被占用了,导致process执行失败
相关文章推荐
- 【JAVA框架】Hibernate 与Mybatis 区别
- 使用Spring MVC 配置
- 由java.lang.NoClassDefFoundError: List错误引发的jdk配置
- JavaBean为什么要实现系列化Serializable接口
- (2.2.4.1)Java Observable 模式
- Java递归删除
- 欢迎使用CSDN-markdown编辑器
- 并发 - java高并发解决方案
- JAVA异常处理
- java源码分析(3)-String(2)
- Exception in thread "main" java.lang.NoSuchFieldError: INSTANCE
- JAVA线程
- Ubuntu14.04 eclipse找不到自建××.h文件
- Eclipse Build Path 的选项含义
- dorado与Struts、Hibernate、Spring的集成
- java实现MD5加密
- JavaBean、List与XML之间的互相转换
- Java中byte转换为16进制的字符串一些自己的见解
- JAVA虚拟机与内存
- 关于java按位操作运算