免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4562 | 回复: 7
打印 上一主题 下一主题

java程序调用sh脚本没有反映,我错在哪里? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-03-05 17:44 |只看该作者 |倒序浏览
请教各位,谢谢!\r\n\r\n我有一个sh脚本,名称为servicestart.sh,如下(最简单的):\r\n    \r\n    echo \"classpath is :\"\r\n      echo \"pash is :\"\r\n\r\n\r\n还有一个java程序,用来调用上面的sh脚本,名称为testsyn.class,源文件内容如下:\r\nimport java.io.*;\r\n\r\npublic class testsyn {\r\n          public static void main(String[] args) {\r\n                \r\n                  try{\r\n                          System.out.println(\"准备运行同步脚本!\");\r\n                          Process pid=null;\r\n                          pid=Runtime.getRuntime().exec(\"./servicestart.sh > shz\");\r\n                          if(pid!=null){\r\n                                  System.out.println(\"进程号:\"+pid.toString());\r\n                          }else{\r\n                                  System.out.println(\"没有pid!\");\r\n                          }\r\n                          System.out.println(\"同步脚本运行完毕!\");\r\n                  }catch(IOException ioe){\r\n                          System.out.println(\"执行脚本时发生错误:\"+ioe.getMessage());\r\n                  } \r\n                 \r\n            }\r\n}\r\n\r\n\r\n结果是:\r\n1、当我直接在系统命令行运行:./servicestart.sh > shz\r\n    脚本顺利运行,产生shz文件。\r\n2、当我通过java程序运行sh脚本时:java testsyn,结果如下:\r\n   准备运行同步脚本!\r\n     进程号:java.lang.UNIXProcess@f62373\r\n     同步脚本运行完毕!\r\n 并没有产生shz文件,说明脚本没有运行。\r\n\r\n说明:我的OS是Solaris 10,并且在X86和Sparc上都是这样的情况。\r\n\r\n我这样用java程序调用sh脚本为什么不行啊?我错在哪里呢?谢谢高手指教!

论坛徽章:
0
2 [报告]
发表于 2007-03-05 18:45 |只看该作者
lz是超级潜水王,注册2年多,终于破处。\r\n我菜鸟,只能在这灌点水,然后等高手来解答,自己再学习

论坛徽章:
0
3 [报告]
发表于 2007-03-06 10:18 |只看该作者
同意楼上\r\n\r\n不过还是要帮你顶起,顺便学习学习

论坛徽章:
0
4 [报告]
发表于 2007-03-06 10:20 |只看该作者
lz果然是奇人,注册多年,第一次发帖,恭喜贺喜!

论坛徽章:
0
5 [报告]
发表于 2007-03-06 10:36 |只看该作者
pid=Runtime.getRuntime().exec(\"./servicestart.sh > shz\");\r\n改成下面的 试下\r\nString  path  =  \"/shz\";  \r\nRuntime.getRuntime().exec(\"./servicestart.sh >\"  +  path);\n\n[ 本帖最后由 managergh 于 2007-3-6 10:39 编辑 ]

论坛徽章:
0
6 [报告]
发表于 2007-03-07 11:46 |只看该作者

to managergh :我按照你的方法尝试了,还是不行。

to managergh :我按照你的方法尝试了,还是不行。\r\n不知道其他高手有没有什么高见啊?

论坛徽章:
0
7 [报告]
发表于 2007-03-10 11:20 |只看该作者
这个问题 主要就是你那段 java代码 没编译执行...问题就应该出在我 改的那个地方吧..

论坛徽章:
0
8 [报告]
发表于 2007-07-01 15:36 |只看该作者

Why?

改了一句:\r\n pid=Runtime.getRuntime().exec(args[0]);\r\n编译后,从命令行输入参数运行: java testsyn ./servicestart.sh >shz\r\n生成了文件shz,可文件内容却是:\r\nready to run script!\r\npid:java.lang.UNIXProcess@1ac04e8\r\nscript run over!\r\n\r\n\r\n不知道为什么\n\n[ 本帖最后由 zf80230901 于 2007-7-1 15:38 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP