java 调用shell的问题。高分求高手赐教
greki 2010-12-20 11:04:12 问题如下:
String str[]={"/bin/sh","-c","sh test1.sh"};
Process pcs=rt.exec(str);
String str[]={"/bin/sh","-c","sh test2.sh"};
Process pcs=rt.exec(str);
A、B测试环境运行一切OK,C环境调用失败(2个shell都失败)。
改成
Process pcs=rt.exec("sh test2.sh");
Process pcs=rt.exec("sh test1.sh");
A、B环境OK,C环境test1.sh成功。调用test2.sh失败。。test2.sh直接命令运行可以成功。运行命令的用户和应用的用户一样。
test1.sh 跟 test2.sh 区别只有test2.sh需要输入一个密码。(现在没有shell,明天来贴源码)
大致test2.sh类似: gpg xxxxx </home/password.txt 是个gpg解密
现在很纠结。3个环境,.sh的权限。文件输出目录的权限都正确。密钥配置也正确,找到原因出在哪里
请大家帮想想可能的原因。