java程序调用sh失败,请问问题出在哪里了

时间:2008-06-12 10:10:33   来源:论坛整理  作者:  编辑:chinaitzhe
请问在程序中要调用.sh执行另一个程序,这么写有问题吗?

Runtime rt = Runtime.getRuntime();

String cmds="./*.sh";

try {
rt.exec(cmds);

System.out.println(cmds);//这里可以执行,但是调用的程序没有运行,不知道问题处在哪里了?
}
catch (IOException ex2) {

System.out.println("执行失败!!");
}

望高手赐教......


网友回复:命令行能运行吗
看看这个
http://www.linuxfans.org/bbs/thread-72116-1-1.html
网友回复:
引用 1 楼 dracularking 的回复:
命令行能运行吗
看看这个
http://www.linuxfans.org/bbs/thread-72116-1-1.html


*.sh执行是没有问题的
求索中.........
网友回复:你用
Java code





Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/





      Process process = rt.exec(cmds);

      BufferedReader bufferedReder = new BufferedReader(new InputStreamReader(process.getInputStream()));

      String s1;

      while((s1 = bufferedReder.readLine()) != null){

        System.out.println(s1);

      }




把信息都打印出来,再来分析
网友回复:
引用 3 楼 peng3696 的回复:
你用

Java code
Process process = rt.exec(cmds);
BufferedReader bufferedReder = new BufferedReader(new InputStreamReader(process.getInputStream()));
String s1;
while((s1 = bufferedReder.readLine()) != null){
System.out.println(s1);
}


把信息都打印出来,再来分析


打印信息如下
stsit:/oradata/daemon>./stmonitor.sh
确定,用于 Client Toolkit ROOT 组件的环境集合。
root 6254 16656 0 09时17分03秒 pts/6 0:00 grep STMonitor
root 15154 16656 4 09时17分14秒 pts/6 0:00 /usr/WebSphere/AppServer/java/bin/java -classpath

/oradata/daemon/lib/dom4j-1.6.1.jar:/oradata/daemon/lib/classes12.jar:/oradata/daemon/classes

com.st.stick.STMonitor

程序不报错,希望调用的程序就是不运行.还望指点.谢谢!
网友回复:是不是你目录下有好几个sh文件,需要*.sh来执行
在程序中不要用*号看可以不
网友回复:
引用 5 楼 peng3696 的回复:
是不是你目录下有好几个sh文件,需要*.sh来执行
在程序中不要用*号看可以不


引起误解了,就执行一个, sh ststick.sh

热心人,再问 sh 可以这么用吗 sh /oradata/daemon/ststick.sh
网友回复:只有一个的话,你打印出来的
打印信息如下
stsit:/oradata/daemon>./stmonitor.sh
确定,用于 Client Toolkit ROOT 组件的环境集合。
root 6254 16656 0 09时17分03秒 pts/6 0:00 grep STMonitor
root 15154 16656 4 09时17分14秒 pts/6 0:00 /usr/WebSphere/AppServer/java/bin/java -classpath

/oradata/daemon/lib/dom4j-1.6.1.jar:/oradata/daemon/lib/classes12.jar:/oradata/daemon/classes

com.st.stick.STMonitor
就是你运行的东西了

shell版本有很多种,sh ststick.sh运行应该没问题,但是一般没有直接这么用的,需要自己指定shell版本
如:/usr/bin/bash /oradata/daemon/ststick.sh

网友回复:问题已解决,谢谢热心人!
关键字:java,程序,调用,sh,失败,请问,

文章评论

共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面