$ sudo ./bin/catalina.sh run
Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
At least one of these environment variable is needed to run this program
/etc/profile 中配置好了所有的环境变量, 为什么还会报错误?
# java environment
export JAVA_HOME="/usr/local/java/jdk1.8.0_144"
export JRE_HOME="$JAVA_HOME/jre"
export CLASSPATH=".:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib"
export PATH="$JAVA_HOME/bin:$JRE_HOME/bin:$PATH"
搜索解决办法时只说去Tomcat的运行文件catalina.sh中添加JAVA_HOME和JRE_HOME两个变量即可运行, 这样切换版本的时候会比较繁琐.
上述错误只在使用root权限启动时发生的? 是否和用户有关?
$ sudo ./catalina.sh run
./catalina.sh: line 108: uname: command not found
./catalina.sh: line 129: dirname: command not found
Cannot find //bin/setclasspath.sh
This file is needed to run this program
正常启动后又报这个错误?键入查看uname和dirname命令都有.
... Tomcat 是怎么了?
3 回答
绝地无双
TA贡献1946条经验 获得超4个赞
你被国内资料误导了,写到/etc/profile
本来就不会被加载,想看详细解释就去google吧,这里不浪费篇幅了。
只说解决方案,按照tomcat官方文档的正确做法,在tomcat的bin/
目录下创建一个setenv.sh
文件,把你的那几个环境变量写入这个文件即可,可以不加export。
另外纠正一个错误,CLASSPATH
这个环境变量早在JDK 1.5以后版本就不再需要了,而且官方文档也是不建议用户自己去设置这个环境变量,JVM能自己找到那几个jar,不需要用户操心。
还有一点,JAVA_HOME
和JRE_HOME
不用都赋值,tomcat会优先使用JRE_HOME
,导致JAVA_HOME
不生效。具体解释可以打开看catalina.sh
文件中开头的解释部分。PATH
那一行也可以不要,没必要。
添加回答
举报
0/150
提交
取消