Java执行Shell脚本“No such file or directory” (win
- 作者: 五速梦信息网
- 时间: 2026年04月04日 13:35
用Runtime.getRuntime().exec()方法执行Linux的一个Shell脚本时,报
Cannot run program "./script/abc.sh": java.io.IOException: error=2, No such file or directory] java.io.IOException: Cannot run program "./script/abc.sh": java.io.IOException: error=2, No such file or directory
原因一:
最终发现是这个shell脚本本身有问题,字符是windows格式(主要是换行符导致),用 vi 打开这个shell脚本就可以看到每一行后面有 ^M 的字符,把这个文件转到 Linux 格式就可以了,方法如下:
解决方法:
[root@localhost script]# dos2unix -o abc.sh dos2unix: converting file abc.sh to UNIX format ...
原因二:
shell 脚本所带参数中含有JAVA中不可解释的字符,如“*”;误转移字符“$”,“-”
解决方法:
在之行命令前面叫上“sh -c”
[root@localhost script]# sh -c "abc.shtest
- 上一篇: Java中,异常的处理及抛出
- 下一篇: Java之美[从菜鸟到高手演变]之JVM内存管理及垃圾回收
相关文章
-
Java中,异常的处理及抛出
Java中,异常的处理及抛出
- 互联网
- 2026年04月04日
-
java中if和switch哪个效率快
java中if和switch哪个效率快
- 互联网
- 2026年04月04日
-
java中map的value设置为泛型
java中map的value设置为泛型
- 互联网
- 2026年04月04日
-
Java之美[从菜鸟到高手演变]之JVM内存管理及垃圾回收
Java之美[从菜鸟到高手演变]之JVM内存管理及垃圾回收
- 互联网
- 2026年04月04日
-
Java之代理(jdk静态代理,jdk动态代理,cglib动态代理,aop,aspectj)
Java之代理(jdk静态代理,jdk动态代理,cglib动态代理,aop,aspectj)
- 互联网
- 2026年04月04日
-
Java正则表达式过滤并消除非法字符
Java正则表达式过滤并消除非法字符
- 互联网
- 2026年04月04日






