下载安装包
Tomcat:
https://dlcdn.apache.org/tomcat/
javaJDK
https://www.oracle.com/cn/java/technologies/downloads
将下好的安装包传到服务器/tmp/
目录。
安装JKD1.8
创建目录
mkdir /usr/local/jdk1.8
解压缩到指定目录(以jdk-8u144-linux-x64.tar.gz
为例)
tar -xvf jdk-8u144-linux-x64.tar.gz -C /usr/local/jdk1.8/
修改环境变量
sudo vim ~/.bashrc
在文件末尾追加下面内容:
#set oracle jdk environment
export JAVA_HOME=/usr/local/jdk1.8 ## 这里要注意目录要换成自己解压的jdk 目录
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
使环境变量马上生效:
source ~/.bashrc
系统注册此jdk
sudo update-alternatives --install /usr/bin/java java /usr/local/jdk1.8/bin/java 300
# /usr/local/jdk1.8/bin/java是刚刚安装的路径
查看java版本,看看是否安装成功:
java -version
如果你安装了多个版本的jdk,你可以通过以下命令在这些版本之间切换:
sudo update-alternatives –config java
JDK17没有jre目录的解决方案
安装jdk17成功,运行Tomcat11报错
The JRE_HOME environment variable is not defined correctly
JRE_HOME=/usr/local/jdk-17/jdk-17.0.11/jre
This environment variable is needed to run this program
百度
从JDK9开始, 引入了模块化, 可以根据自己的需要生成一个runtime, 所以就不再单独提供jre了
得把所谓的jre和模块搞出来~
以jdk在 /usr/local/jdk-17
为例
cd /use/local/jdk-17
运行以下指令
./bin/jlink --module-path jmods --add-modules java.desktop --output jre
之后生成jre目录和文件
好,运行Tomcat
root@ixjkj-standard-pc-i440fx-piix-1996-1:/usr/local/tomcat-11/apache-tomcat-11.0.0-M19/bin# ./startup.sh
Using CATALINA_BASE: /usr/local/tomcat-11/apache-tomcat-11.0.0-M19
Using CATALINA_HOME: /usr/local/tomcat-11/apache-tomcat-11.0.0-M19
Using CATALINA_TMPDIR: /usr/local/tomcat-11/apache-tomcat-11.0.0-M19/temp
Using JRE_HOME: /usr/local/jdk-17/jdk-17.0.11/jre
Using CLASSPATH: /usr/local/tomcat-11/apache-tomcat-11.0.0-M19/bin/bootstrap.jar:/usr/local/tomcat-11/apache-tomcat-11.0.0-M19/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.
好像启动了~
查看汤姆猫运行日志cat catalina.out
又报错误
root@ixjkj-standard-pc-i440fx-piix-1996-1:/usr/local/tomcat-11/apache-tomcat-11.0.0-M19/logs# cat catalina.out
WARNING: Unknown module: java.rmi specified to --add-opens
Exception in thread "main" java.lang.NoClassDefFoundError: java/util/logging/Logger
at org.apache.juli.logging.DirectJDKLog.<init>(DirectJDKLog.java:61)
at org.apache.juli.logging.DirectJDKLog.getInstance(DirectJDKLog.java:181)
at org.apache.juli.logging.LogFactory.getInstance(LogFactory.java:133)
at org.apache.juli.logging.LogFactory.getInstance(LogFactory.java:156)
at org.apache.juli.logging.LogFactory.getLog(LogFactory.java:211)
at org.apache.catalina.startup.Bootstrap.<clinit>(Bootstrap.java:49)
Caused by: java.lang.ClassNotFoundException: java.util.logging.Logger
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
... 6 more
继续来百度……
修改 /etc/profile文件
nano /etc/profile
加入变量
在文件末尾追加下面内容:
# /etc/profile文件末添加如下, 解决jre找不到的问题
JAVA_HOME=/usr/local/jdk-17/
JRE_HOME=$JAVA_HOME
CLASSPATH=$JAVA_HOME/lib
PATH=$JRE_HOME/bin:$JAVA_HOME/bin:$PATH
export PATH JAVA_HOME CLASSPATH
使环境变量马上生效:
source /etc/profile
安装Tomcat
下载并上传Tomcat压缩包到服务器/tmp
目录为例
创建目录
mkdir /usr/local/tomcat-9
解压缩到/usr/local/tomcat-9/
目录下
tar -xvf apache-tomcat-9.0.88.tar.gz -C /usr/local/tomcat-9/
执行 startup.sh 文件
下面进入到 Tomcat 文件夹的 bin
目录,执行 startup.sh
文件
执行这个文件有两种方式,任选其一:
sh startup.sh
./startup.sh
验证Tomcat启动是否成功
- 查看启动日志
使用命令查看 Tomcat
安装目录下的 logs
目录下的 catalina.out
文件,这个是Tomcat的日志文件。
可以使用以下任一命令查看:
cat catalina.out
more catalina.out
tail -50 catalina.out
启动时遇到的问题 - catalina.out 文件报错java.io.EOFException:
意思大概就是上次启动了Tomcat未正常关闭,这次启动找不到上次启动的项目的Session
但是我根本没有部署过项目,很迷!,但是这里不影响使用。
- 查看启动进程
使用如下命令查看是否有Tomcat 的启动进程,如果有,有对应的进程号:
ps -ef | grep tomcat
访问 Tomcat 服务
localhost:8080
停止 Tomcat 服务
可以使用下面的方式停止Tomcat服务:
sh shutdown.sh
或者执行这个命令:
./shutdown.sh
如果执行上面的命令失败了,使用下面的命令结束 Tomcat 进程:
首先查询 Tomcat 进程:
ps -ef | grep tomcat
强制杀死进程(不推荐):
kill -9 进程号
#多的话全kill了
kill -9 `ps -ef|grep tomcat|grep -v grep|awk '{print $2}'`
评论 (0)