1.1 java基础
1.概念解释
JDK(Java Development Kit):Java 开发工具包,是 Java 开发人员用于开发 Java 程序的基础工具。它提供了编译、调试和运行 Java 程序所需的各种工具和资源,包含了 JRE 和一系列开发工具(如 javac 编译器、java 运行工具、jdb 调试器等)。
JRE(Java Runtime Environment):Java 运行时环境,是运行 Java 程序所必需的环境集合。它包含了 Java 虚拟机(JVM)、Java 核心类库以及支持文件,能够提供执行 Java 程序的基本环境,但不包含开发工具。
JVM(Java Virtual Machine):Java 虚拟机,是 Java 程序的运行核心。它负责加载字节码文件(.class 文件),并将字节码解释或编译成机器码,在不同的操作系统上提供统一的运行环境,实现了 Java 程序的 “一次编写,到处运行” 的特性。
三者关系 可以用一个包含关系来描述它们:JDK 包含 JRE,JRE 包含 JVM。即 JDK = JRE + 开发工具,JRE = JVM + Java 核心类库。如果只是运行已有的 Java 程序,只需要安装 JRE 即可;但如果要开发 Java 程序,则必须安装 JDK。
2.和Tomacat的关系
Tomcat 是一个开源的 Servlet 容器,由 Apache 软件基金会开发和维护。它实现了 Servlet 和 JSP 规范,能够处理客户端的 HTTP 请求,执行 Servlet 程序,并将结果返回给客户端。
依赖关系 Tomcat 是用 Java 语言编写的,因此它的运行依赖于 Java 环境。具体来说,Tomcat 需要 JRE 或 JDK 来运行。当启动 Tomcat 时,实际上是启动了一个 Java 进程,该进程在 JVM 上运行 Tomcat 的代码。没有 Java 环境,Tomcat 就无法启动和工作。
1.2 在操作系统中部署java
打开网站:Java Downloads | Oracle (可能会失效)
根据对应的操作系统选择对应的安装包
1.Ubuntu环境部署Java – deb
从官网获取软件,而后下载到本地,然后上传到
ubuntu
主机
root
@ubuntu24-13:
/
data
/
softs
# wget
https://download.oracle.com/java/24/latest/jdk-24_linux-x64_bin.deb
root@ubuntu24-13:/data/softs# ls 会得到右面的结果—— jdk-24_linux-x64_bin.deb
检测效果
root
@ubuntu24-13:
/
data
/
softs
# whereis java
java: /usr/bin/java /usr/share/java /usr/share/man/man1/java.1.gz
确认效果
安装
java
环境
root
@ubuntu24-13:
/
data
/
softs
# dpkg -i jdk-24_linux-x64_bin.deb
查看效果
root
@ubuntu24-13:
/
data
/
softs
# whereis java
java: /usr/bin/java /usr/share/java /usr/share/man/man1/java.1
命令检测
root
@ubuntu24-13:
/
data
/
softs
# java -version
java version "24.0.1" 2025-04-15 Java(TM) SE Runtime Environment (build 24.0.1+9-30) Java HotSpot(TM) 64-Bit Server VM (build 24.0.1+9-30, mixed mode, sharing)
真正的命令在哪里?
root
@ubuntu24-13:
/
data
/
softs
# ls /usr/bin/java -l
lrwxrwxrwx
1
root root
22
9
月
30 15
:
20
/
usr
/
bin
/
java
-> /
etc
/
alternatives
/
java
root
@ubuntu24-13:
/
data
/
softs
# ls /etc/alternatives/java -l
lrwxrwxrwx
1
root root
43
9
月
30 15
:
20
/
etc
/
alternatives
/
java
->
/
usr
/
lib
/
jvm
/
jdk-23
.0.1
–
oracle-x64
/
bin
/
java
root
@ubuntu24-13:
/
data
/
softs
# ls /usr/lib/jvm/jdk-23.0.1-oracle-x64/bin/java -l
–
rwxr-xr-x
1 10668 10668 12328
9
月
30 15
:
20
/
usr
/
lib
/
jvm
/
jdk-23
.0.1
–
oracle
x64
/
bin
/
java
依照本安装的环境 如下显示
清理环境
root
@ubuntu24-13:
/
data
/
softs
# apt purge jdk-24
2. Rocky环境部署Java-rpm
前面安装的步骤和ubuntu一样,这里就说说不一样的安装,其他的略
安装软件
[root
@rocky9-12
softs]
# rpm -ivh jdk-23_linux-x64_bin.rpm
卸载软件
[root
@rocky9-12
softs]
# yum remove java
3.Ubuntu环境部署Java – openjdk
安装软件
root
@ubuntu24-13:
~
# apt update; apt list
openjdk*
root
@ubuntu24-13:
~
# apt install openjdk-11-jdk -y
检测效果
root
@ubuntu24-13:
~
# whereis java
java
: /
usr
/
bin
/
java
/
usr
/
share
/
java
/
usr
/
share
/
man
/
man1
/
java
.1
.gz
查看版本
root
@ubuntu24-13:
~
# java -version
openjdk version
"11.0.25"
2024
–
10
–
15
OpenJDK Runtime Environment (build
11.0.25
+
9
–
post-Ubuntu-1ubuntu124
.04
)
OpenJDK
64
–
Bit Server VM (build
11.0.25
+
9
–
post-Ubuntu-1ubuntu124
.04
, mixed mode,
sharing)
java命令在哪里
root
@ubuntu24-13:
~
# whereis java
java
: /
usr
/
bin
/
java
/
usr
/
share
/
java
/
usr
/
share
/
man
/
man1
/
java
.1
.gz
root
@ubuntu24-13:
~
# ll /usr/bin/java
lrwxrwxrwx
1
root root
22 10
月
18 01
:
21
/
usr
/
bin
/
java
-> /
etc
/
alternatives
/
java
*
root
@ubuntu24-13:
~
# ll /etc/alternatives/java
lrwxrwxrwx
1
root root
43 10
月
18 01
:
21
/
etc
/
alternatives
/
java
->
/
usr
/
lib
/
jvm
/
java-11-openjdk-amd64
/
bin
/
java
*
注意:安装软件的版本信息,会随时在变化
4.Rocky环境部署java – openjdk
安装软件
[root
@rocky9-12
~
]
# yum list
java*openjdk*
[root
@rocky9-12
~
]
# yum install java-11-openjdk -y
检测效果
[root
@rocky9-12
~
]
# whereis java
java
: /
usr
/
bin
/
java
/
usr
/
lib
/
java
/
etc
/
java
/
usr
/
share
/
java
/
usr
/
share
/
man
/
man1
/
java
.1
.gz
查看版本
[root
@rocky9-12
~
]
# java –version
openjdk
11.0.25 2024
–
10
–
15
LTS
OpenJDK Runtime Environment (Red_Hat-11
.0.25.0.9
–
1
) (build
11.0.25
+
9
–
LTS)
OpenJDK
64
–
Bit Server VM (Red_Hat-11
.0.25.0.9
–
1
) (build
11.0.25
+
9
–
LTS, mixed
mode, sharing)
真正的命令在哪里?
[root
@rocky9-12
~
]
# ll /usr/bin/java
lrwxrwxrwx.
1
root root
22 11
月
17 12
:
57
/
usr
/
bin
/
java
-> /
etc
/
alternatives
/
java
[root
@rocky9-12
~
]
# ll /etc/alternatives/java
lrwxrwxrwx.
1
root root
62 11
月
17 12
:
57
/
etc
/
alternatives
/
java
->
/
usr
/
lib
/
jvm
/
java-11-openjdk-11
.0.25.0.9
–
2.
el9.x86_64
/
bin
/
java
[root
@rocky9-12
~
]
# ll /usr/lib/jvm/java-11-openjdk-11.0.25.0.9-
2.el9.x86_64/bin/java
–
rwxr-xr-x.
1
root root
18072 10
月
17 04
:
33
/
usr
/
lib
/
jvm
/
java-11-openjdk-
11
.0.25.0.9
–
2.
el9.x86_64
/
bin
/
java
注意: 安装软件的版本信息,会随时在变化
1.3 Tomcat
Tomcat
(全称为
Apache Tomcat
)是一个开源的、轻量级的应用服务器,由
Apache
软件基金会开发和维护,它实现了
Java Servlet
、
Java Server Pages
(
JSP
)和
Java Expression
Language
(简称
JEXL java
表达式语言)等
Java EE
规范,并提供了一个运行这些
Web
应用程序的环境。
在使用
Tomcat
时,将
Java Web
应用程序(包括
Servlet
、
JSP
等文件)部署到
Tomcat
服务中,然后通过
HTTP
协议访问这些应用程序,
Tomcat
提供了一个简单而强大的方式来托管和运行
Java Web
应用程序。
1. java应用如何部署
JAR
包的主要作用之一是实现代码复用和模块化开发
,
也就是说,主要用于在项目分层开发的场景下,通用的功能模块、工具类、第三方库等功能,这样可以使应用的结构更加清晰,便于开发和维护。而且这些通用的功能代码,可以被多个不同的
Web
应用或
Java
项目共享使用。这些相互依赖的包关系可以借助于
Maven
、
Gradle
等工具来实现。
WAR
包是一个完整的
Web
应用程序的归档文件,它包含了一个
Web
应用运行所需的所有资源,如
JSP
文件、
Servlet
类、
HTML
文件、
CSS
文件、
JavaScript
文件等。每个
WAR
包通常对应一个独立的
Web
应用,不适合用于代码的复用
—
因为他本身没有依赖。
JAR
包可以部署到不同的环境中,不仅可以用于
Web
应用
,
还可以用于各种服务的独立部署。
WAR
包通常需要部署到支持
Java Web
应用的服务器(如
Tomcat
、
Jetty
等)中才能运行,部署方式相对固定。
2.Tomcat版本选择
参考资料:
https
://
tomcat.apache.org
/
#
官网
https
://
tomcat.apache.org
/
whichversion.html
#
版本对比
3.Ubuntu安装Tomcat10
1)安装好java环境
root
@ubuntu24-16:
~
# apt install openjdk-11-jdk -y
2)安装Tomcat10
查看软件
root
@ubuntu24-13:
~
# apt list tomcat*
正在列表
..
.
完成
tomcat-jakartaee-migration
/
noble
1.0.7
–
2
all
tomcat10-admin
/
noble
10.1.16
–
1
all
tomcat10-common
/
noble
10.1.16
–
1
all
#
程序的主程序执行脚本在这个包里
tomcat10-docs
/
noble
10.1.16
–
1
all
tomcat10-examples
/
noble
10.1.16
–
1
all
tomcat10-user
/
noble
10.1.16
–
1
all
tomcat10
/
noble
10.1.16
–
1
all
安装
tomcat
root
@ubuntu24-13:
~
# apt install tomcat10 -y
检测服务状态
root
@ubuntu24-13:
~
# systemctl is-active tomcat10.service
active
检测端口
root
@ubuntu24-13:
~
# netstat -tnulp | grep java
tcp6
0
0
:::
8080
:::*
LISTEN
5875
/
jav
查看进程
root
@ubuntu24-13:
~
# ps aux | grep tomcat
tomcat
5875
3.3
4.4 3583400 176440
?
Ssl
13
:
04
0
:
04
浏览器访问 10.0.0.13:8080
4.Rocky安装Tomcat
yum list tomcat*
安装
tomcat
[root
@rocky9-12
~
]
# yum install tomcat -y
检测服务状态
[root
@rocky9-12
~
]
# systemctl is-active tomcat
inactive
启动服务
[root
@rocky9-12
~
]
# systemctl start tomcat
[root
@rocky9-12
~
]
# systemctl enable tomcat
tomcat9在rocky中部署的时候,没有测试页面
[root
@rocky9-12
~
]
# mkdir /usr/share/tomcat/webapps/ROOT
[root
@rocky9-12
~
]
# echo "Hello,the beautiful world" >
/usr/share/tomcat/webapps/ROOT/index.jsp
[root
@rocky9-12
~
]
# curl 10.0.0.12:8080
Hello,the beautiful world
5.源码部署
1.ubuntu二进制部署java环境
1)j
ava
环境部署好
root
@ubuntu24-16:
~
# apt install openjdk-11-jdk -y
检查效果
root
@ubuntu24-16:
~
# java -version
定制环境变量
root
@ubuntu24-16:
~
# vim /etc/profile.d/java.sh
export JAVA_HOME
=/
usr
/
lib
/
jvm
/
java-11-openjdk-amd64
export JAVA_BIN
=
$JAVA_HOME
/
bin
export PATH
=
$JAVA_BIN:$PATH
加载环境变量
root
@ubuntu24-16:
~
# source /etc/profile.d/java.sh
获取软件
root
@ubuntu24-16:
~
# mkdir /data/softs -p; cd /data/softs
root
@ubuntu24-16:
/
data
/
softs
# wget https://dlcdn.apache.org/tomcat/tomcat-
9/v9.0.97/bin/apache-tomcat-9.0.97.tar.gz
解压文件
root
@ubuntu24-16:
/
data
/
softs
# mkdir /data/server
root
@ubuntu24-16:
/
data
/
softs
# tar xf apache-tomcat-9.0.97.tar.gz -C
/data/server/
定制软连接
root
@ubuntu24-16:
/
data
/
softs
# ln -s /data/server/apache-tomcat-9.0.97
/data/server/tomcat
root
@ubuntu24-16:
/
data
/
softs
# ls /data/server/
apache-tomcat-9
.0.97
tomcat
查看目录结构
root
@ubuntu24-16:
/
data
/
softs
# ls /data/server/tomcat
bin conf lib logs README.
md
RUNNING.txt
webapps
BUILDING.txt CONTRIBUTING.
md
LICENSE NOTICE RELEASE-NOTES temp work
root
@ubuntu24-16:
/
data
/
softs
# ls /data/server/tomcat/bin/
bootstrap.jar configtest.sh shutdown.sh
catalina.bat daemon.sh startup.bat
catalina.sh
【启动脚本】
digest.bat startup.sh
。。。。。
查看启动脚本
root
@ubuntu24-16:
~
# /data/server/tomcat/bin/catalina.sh
Using CATALINA_BASE
:
/
data
/
server
/
tomcat
Using CATALINA_HOME
:
/
data
/
server
/
tomcat
Using CATALINA_TMPDIR
: /
data
/
server
/
tomcat
/
temp
。。。。。
定制系统环境变量
root
@ubuntu24-16:
~
# vim /etc/profile.d/tomcat.sh
export CATALINA_BASE
=/
data
/
server
/
tomcat
export CATALINA_HOME
=/
data
/
server
/
tomcat
export CATALINA_TMPDIR
=
$CATALINA_HOME
/
temp
export CLASSPATH
=
$CATALINA_HOME
/
bin
/
bootstrap.jar
:
$CATALINA_HOME
/
bin
/
tomcat
juli.jar
export PATH
=
$CATALINA_HOME
/
bin
:
$PATH
加载系统环境变量
root
@ubuntu24-16:
~
# source /etc/profile.d/tomcat.sh
启动
tomcat
root
@ubuntu24-16:
~
# catalina.sh start
Using CATALINA_BASE
:
/
data
/
server
/
tomcat
Using CATALINA_HOME
:
/
data
/
server
/
tomcat
Using CATALINA_TMPDIR
: /
data
/
server
/
tomcat
/
temp
Using JRE_HOME
:
/
usr
Using CLASSPATH
:
/
data
/
server
/
tomcat
/
bin
/
bootstrap.jar
:/
data
/
server
/
tomcat
/
bin
/
tomcat-juli.jar
Using CATALINA_OPTS
:
Tomcat started.
查看端口效果
root
@ubuntu24-16:
~
# netstat -tnulp | grep java
tcp6
0
0
:::
8080
:::*
LISTEN
5114
/
java
tcp6
0
0 127.0.0.1
:
8005
:::*
LISTEN
5114
/
java
浏览器查看效果
2.ubuntu定制tomcat的服务脚本
停止tomcat服务
root
@ubuntu24-16:
~
# catalina.sh stop
Using CATALINA_BASE
:
/
data
/
server
/
tomcat
Using CATALINA_HOME
:
/
data
/
server
/
tomcat
Using CATALINA_TMPDIR
: /
data
/
server
/
tomcat
/
temp
Using JRE_HOME
:
/
usr
Using CLASSPATH
:
/
data
/
server
/
tomcat
/
bin
/
bootstrap.jar
:/
data
/
server
/
tomcat
/
bin
/
tomcat-juli.jar
Using CATALINA_OPTS
:
NOTE
:
Picked up JDK_JAVA_OPTIONS
:
—
add-opens
=
java.base
/
java.lang
=
ALL-UNNAMED
–
–
add-opens
=
java.base
/
java.io
=
ALL-UNNAMED
—
add-opens
=
java.base
/
java.util
=
ALL
UNNAMED
—
add-opens
=
java.base
/
java.util.concurrent
=
ALL-UNNAMED
—
add
opens
=
java.rmi
/
sun.rmi.transport
=
ALL-UNNAMED
定制服务启动脚本
定制专用服务用户
root
@ubuntu24-16:
~
# useradd -r -s /sbin/nologin tomcat
root
@ubuntu24-16:
~
# id tomcat
uid
=
997
(tomcat) gid
=
984
(tomcat)
组
=
984
(tomcat)
更改文件权限,因为是链接文件,所以,需要执行两条命令
root
@ubuntu24-16:
~
# chown -R tomcat:tomcat /data/server/tomcat
root
@ubuntu24-16:
~
# chown tomcat:tomcat -R /data/server/tomcat/*
root
@ubuntu24-16:
~
# ll /data/server/tomcat
lrwxrwxrwx
1
tomcat tomcat
33 11
月
17 14
:
02
/
data
/
server
/
tomcat
->
/
data
/
server
/
apache-tomcat-9
.0.97
/
定制启动服务脚本
定制启动服务脚本
root
@ubuntu24-16:
~
# cat /lib/systemd/system/tomcat.service
[Unit]
Description
=
Tomcat
After
=
syslog.target network.target
[Service]
Type
=
forking
# Environment=JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64/
ExecStart
=/
data
/
server
/
tomcat
/
bin
/
startup.sh
ExecStop
=/
data
/
server
/
tomcat
/
bin
/
shutdown.sh
PrivateTmp
=
true
User
=
tomcat
Group
=
tomcat
[Install]
WantedBy
=
multi-user.target
加载服务配置
加载服务配置
root
@ubuntu24-16:
~
# systemctl daemon-reload
启动
tomcat
服务
root
@ubuntu24-16:
~
# systemctl start tomcat
root
@ubuntu24-16:
~
# systemctl status tomcat
●
tomcat.service
–
Tomcat
Loaded
:
loaded (
/
usr
/
lib
/
systemd
/
system
/
tomcat.service; disabled; preset
:
enabled)
Active
:
active (running)
浏览器访问 10.0.0.16:8080 里面的链接可以正常点击
Rocky部署
tomcat
10
安装
java
环境
[root
@rocky9-15
~
]
# yum install java-11-openjdk -y
检查效果
[root
@rocky9-15
~
]
# java –version
openjdk 17.0.15 2025-04-15 LTS OpenJDK Runtime Environment (Red_Hat-17.0.15.0.6-1) (build 17.0.15+6-LTS) OpenJDK 64-Bit Server VM (Red_Hat-17.0.15.0.6-1) (build 17.0.15+6-LTS, mixed mode, sharing)
定制环境变量
[root
@rocky9-15
~
]
# vim /etc/profile.d/java.sh
export JAVA_HOME
=/
usr
/
lib
/
jvm
/
java-17-openjdk-17.0.15.0.6-2
.
el9.x86_64
export JAVA_BIN
=
$JAVA_HOME
/
bin
export PATH
=
$JAVA_BIN:$PATH
加载环境变量
[root
@rocky9-15
~
]
# source /etc/profile.d/java.sh
Rocky二进制部署
tomcat
[root
@rocky9-15
~
]
# mkdir /data/softs -p; cd /data/softs
[root
@rocky9-15
softs]
# wget
https://dlcdn.apache.org/tomcat/tomcat-10/v10.1.40/bin/apache-tomcat-10.1.40.tar.gz
解压文件
[root
@rocky9-15
softs]
# mkdir /data/server
[root
@rocky9-15
softs]
# tar xf apache-tomcat-10.1.33.tar.gz -C /data/server/
定制软连接
[root
@rocky9-15
softs]
# ln -s /data/server/apache-tomcat-10.1.33
/data/server/tomcat
[root
@rocky9-15
softs]
# ls /data/server/
apache-tomcat-10
.1.33
tomcat
查看目录结构
[root
@rocky9-15
softs]
# ls /data/server/tomcat
bin conf lib logs README.
md
RUNNING.txt
webapps
BUILDING.txt CONTRIBUTING.
md
LICENSE NOTICE RELEASE-NOTES temp work
[root
@rocky9-15
softs]
# ls /data/server/tomcat/bin/
bootstrap.jar configtest.sh shutdown.sh
catalina.bat daemon.sh startup.bat
catalina.sh
【启动脚本】
digest.bat startup.sh
。。。。。
查看启动脚本
[root
@rocky9-15
softs]
# /data/server/tomcat/bin/catalina.sh
。。。。
定制系统环境变量
[root
@rocky9-15
~
]
# vim /etc/profile.d/tomcat.sh
export CATALINA_BASE
=/
data
/
server
/
tomcat
export CATALINA_HOME
=/
data
/
server
/
tomcat
export CATALINA_TMPDIR
=
$CATALINA_HOME
/
temp
export CLASSPATH
=
$CATALINA_HOME
/
bin
/
bootstrap.jar
:
$CATALINA_HOME
/
bin
/
tomcat
juli.jar
export PATH
=
$CATALINA_HOME
/
bin
:
$PATH
加载系统环境变量
[root
@rocky9-15
~
]
# source /etc/profile.d/tomcat.sh
启动
tomcat
[root
@rocky9-15
~
]
# catalina.sh start
Using CATALINA_BASE
:
/
data
/
server
/
tomcat
Using CATALINA_HOME
:
/
data
/
server
/
tomcat
Using CATALINA_TMPDIR
: /
data
/
server
/
tomcat
/
temp
Using JRE_HOME
:
/
usr
/
lib
/
jvm
/
java-11-openjdk-11
.0.25.0.9
–
2.
el9.x86_64
Using CLASSPATH
:
/
data
/
server
/
tomcat
/
bin
/
bootstrap.jar
:/
data
/
server
/
tomcat
/
bin
/
tomcat-juli.jar
Using CATALINA_OPTS
:
Tomcat started.
查看端口效果
[root
@rocky9-15
~
]
# netstat -tnulp | grep java
tcp6
0
0
:::
8080
:::*
LISTEN
33657
/
java
tcp6
0
0 127.0.0.1
:
8005
:::*
LISTEN
33657
/
java
浏览器效果
评论前必须登录!
注册