java调用执行传参shell脚本的问题

风_云_ 2013-08-12 01:27:40
最经一个项目中要用到一个shell脚本,我就用
String PATH = "/XXXXX/a.sh";
try {
Process num = Runtime.getRuntime().exec(PATH);
} catch (IOException e) {
e.printStackTrace();
}

调用,执行没有问题,后来这个脚本加了一个参数,我的方法是
String[] PATH = {"/XXXXX/a.sh","1"};
try {
Process num = Runtime.getRuntime().exec(PATH);
} catch (IOException e) {
e.printStackTrace();
}
调用,也可以,然后我就把这个脚本放到另一个linux上运行,就出现了一个很有趣的问题,调用不了了,当然,我抽取的只是一部分片段,我在这个里面打了log,log显示成功通过,这个a.sh的作用是生成一个文件,但是执行过之后文件没有生成,而且exec根本没有报错,waitfor的结果是0;我检查过a.sh的执行权限,两个环境权限一样都是777,配置也相同,代码更是一模一样,用户都是root,脚本单独用命令执行没有问题,但是这套代码单独运行在我的开发环境上时可以使用,运行在另一套环境上时不能运行,有哪位能提供下带参shell脚本的调用方法或者能用各位的经验帮忙判断下问题出在哪,为什么这个在这两套环境中执行处不同的结果,谢谢了,另外这部分代码单独放到main里面执行是没有问题的,只是在项目中运行的时候一个生成了文件另一个没有生成,麻烦各位凭经验判断下,谢谢
...全文
359 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
烨小子 2016-01-25
  • 打赏
  • 举报
回复
引用 2 楼 u011670783 的回复:
这个问题我已经搞定了,结果是tomcat权限和root权限冲突,导致shell脚本执行出错,exec本身执行了该脚本,但是未生成所需要的文件,即tomcat没有往root文件里面的写入权限,既然问题已经解决了,帖子也就结了吧,分数就送你了
你好, 我想问一下,后来是怎么解决这个问题的额?
风_云_ 2013-08-13
  • 打赏
  • 举报
回复
这个问题我已经搞定了,结果是tomcat权限和root权限冲突,导致shell脚本执行出错,exec本身执行了该脚本,但是未生成所需要的文件,即tomcat没有往root文件里面的写入权限,既然问题已经解决了,帖子也就结了吧,分数就送你了
小丑哥_V5 2013-08-12
  • 打赏
  • 举报
回复
路过打下酱油帮顶

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧