免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 7786 | 回复: 5

Runtime.getRuntime().exec执行startup.sh启动tomcat为什么不行? [复制链接]

论坛徽章:
0
发表于 2006-08-30 16:34 |显示全部楼层
1、用Runtime.getRuntime().exec( "/usr/local/tomcat/bin/startup.sh" )启动tomcat,tomcat无动于衷,Runtime.getRuntime().exec( "sh /usr/local/tomcat/bin/startup.sh" )结果一样
2、写个脚本starttom
#!/bin/bash
sh /usr/local/tomcat/bin/startup.sh
touch /root/ok
运行脚本,tomcat可以启动
3、运行Runtime.getRuntime().exec( "./starttom" ),ok文件建立成功,但是tomcat依然没有启动

如果想用程序启动tomcat该怎么办呢?我错在哪里了呢?

[ 本帖最后由 placidy 于 2006-8-30 16:41 编辑 ]

论坛徽章:
0
发表于 2006-08-31 09:24 |显示全部楼层
#!/bin/bash
sh /usr/local/tomcat/bin/startup.sh
touch /root/ok
上面脚本中,第二条命令,新建文件OK运行成功了,启动 tomcat的命令在它前面怎么反而没有反应呢?

论坛徽章:
0
发表于 2006-08-31 10:19 |显示全部楼层
有没有把Runtime.exec("..........startup.sh")的输出截下来看看

论坛徽章:
0
发表于 2006-08-31 11:07 |显示全部楼层
或许有些变量没带进来。

论坛徽章:
0
发表于 2006-08-31 11:09 |显示全部楼层
谢谢 sakulagi,我把输出打印一看,是因为JAVA_HOME找不到.
我的程序是用脚本添加到/etc/init.d下面写成服务的.
直接运行程序没有这样的情况,tomcat可以正常启动,但是用服务类型启动程序就找不到JAVA_HOME.
在服务脚本的start函数最前面添加export JAVA_HOME=/usr/local/jdk,问题就解决了.
但是有一点我不理解,为什么服务程序启动就找不到JAVA_HOME呢?而且我这样export JAVA_HOME也不理想呀,如果jdk安装的地址有变化,岂不是要老是修改这个服务脚本么?

论坛徽章:
0
发表于 2006-08-31 13:40 |显示全部楼层
你没有好好看tomcat的启动文件,看看startup.sh, shutdown.sh再看看catalina.sh
就会发现tomcat的MainClass是
org.apache.catalina.startup.Bootstrap

启动的参数为start
停止的参数为stop

现在你还用Runtime.exec(......)吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP