经过一番debug,最终找到原来是先前在tomcat的bin下的catalina.sh中添了一行set JAVA_OPTS='Xmx=64m,Xms=512m'(大概是这样的一行)的缘故
现在说说debug的过程:
上图是ant在执行到启动tomcat时出现的错误,所以手动启动tomcat,发现还是出现这个问题--(把这个问题做一个类比:比如希望输入一条命令java -version,而输入时却写成Java -ver,执行之后就会报错,并提示你参数是。。。)
那么"set JAVA...“这个抗是怎么发现的呢?
vi catalina.sh
在if .. debug 前打印两行 echo "=======",然后在其间打印 echo $*等
发现原来catalina把set JAVA...当成一条命令,set是命令,JAVA...是参数,
然后if..debug 会解析上一条命令,通过$0 $1两个参数,然后if 判断,发现没有对应的run、start、stop 等参数,所以抛错误出来
另,tomcat启动的时候,startup.sh也会调用catalina.sh
另:这行语句应该添加在startup.bat中
感谢龙哥~
2)tomcat启动报错:
tomcat启动时报
The BASEDIR environment variable is not defined correctly This environment variable is needed to run this program
这个错是由于文件执行权限不足,解决办法就是给
$CATALINA_HOME/bin目录下所有.sh文件添加一个可执行权限即可
命令如下:chmod 755 *.sh
3) 关闭不了:
杀掉javaw.exe进程,参考:http://zhidao.baidu.com/link?url=HzyM_5PaPgZaaHXAyQJ4SnCDeNCQMavV445fQVaUAVLYQfjliixkLPF6L1Br6yfLV1sfZfknQaF0l73jMIYLua