在的web应用程序中需要使用 runtime 来执行exec 来运行一个流量接收程序,我在window下使用eclipse 集成tomcat调试,没有一点问题,exec能够运行外部的cmd。把程序部署到 linux 的tomcat服务下,exec不能执行cmd,不报错。
经过上万查资料发现,是用户权限的问题,使用eclipse +tomcat开发,程序是以登录者的权限运行,通常就是admin了。当把tomcat注册成服务,并部署web的时候就会出现问题了。因为tomcat运行时默认使用自己的用户,所以造成了exec程序无法执行的情况,解决的思路就是让tomcat不使用自己的用户运行。
window下怎么修改还没找到!
linux下修改如下:centos ,tomcat5.
vim /etc/init.d/tomcat5
212行 $SU - $TOMCAT_USER -c "$TOMCAT_SCRIPT start" >> $TOMCAT_LOG 2>&1替换成
$SU - -c "$TOMCAT_SCRIPT start" >> $TOMCAT_LOG 2>&1 就ok了。