...

在 MacOS 环境下,执行 startup.sh 和 sudo startup.sh 命令启动 Tomcat 服务器时,发现 Tomcat 的 JRE_HOME 环境变量不一样

问题

在我的 Mac 环境下,配置了多个 Java 版本,在 终端的配置文件 .zshrc(如果你用的是 Bash,则是是在 .bash_profile)中,默认配置的 JAVA_HOME 是 Java 1.8 的版本,但是在终端执行 startup.sh 和 sudo startup.sh 命令启动 Tomcat 服务器时,发现 Tomcat 的 JRE_HOME 环境变量不一样,执行 startup.sh 命令时,JRE_HOME 是 1.8 版本的,但是执行 sudo startup.sh 命令 却是 17 版本的。

startup.sh
Using CATALINA_BASE:   /Library/Tomcat
Using CATALINA_HOME:   /Library/Tomcat
Using CATALINA_TMPDIR: /Library/Tomcat/temp
Using JRE_HOME:        /Library/Java/JavaVirtualMachines/jdk1.8.0_271.jdk/Contents/Home
Using CLASSPATH:       /Library/Tomcat/bin/bootstrap.jar:/Library/Tomcat/bin/tomcat-juli.jar
Tomcat started.
sudo startup.sh
Password:
Using CATALINA_BASE:   /Library/Tomcat
Using CATALINA_HOME:   /Library/Tomcat
Using CATALINA_TMPDIR: /Library/Tomcat/temp
Using JRE_HOME:        /Library/Java/JavaVirtualMachines/jdk-17.0.1.jdk/Contents/Home
Using CLASSPATH:       /Library/Tomcat/bin/bootstrap.jar:/Library/Tomcat/bin/tomcat-juli.jar
Tomcat started.

解决

我猜测是加了 sudo 命令后,读取的配置文件不一样,加 sudo 后读的是 Tomcat 自带的配置文件,我的解决办法是修改 Tomcat 自带的配置文件。具体操作如下:进入 /Library/Tomcat/ 目录,打开 catalina.sh 文件,在其中添加你的 JAVA_HOME 和 JRE_HOME 环境变量,比如

#Tomcat 的 Java 环境
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_271.jdk/Contents/Home
export JRE_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_271.jdk/Contents/Home

你要把以上代码中的路径改成你电脑上的路径。重启 Tomcat 服务器,搞定。

0 评论
内联反馈
查看所有评论

网站运营需要成本,可以给我充电吗?

相似文章

Seraphinite AcceleratorOptimized by Seraphinite Accelerator
Turns on site high speed to be attractive for people and search engines.