1、java环境概述
jvm、jdk、jre
java语言,需要编译,生成软件包
jvm: Java Virtual Machine
运行java代码的地方java虚拟机:jvm(内存中的一块区域),是java程序代码运行的必备环境之一
只要安装好jvm环境,就可以运行java代码,一份代码处处运行,可移植性、多平台性
jdk:Java Development Kit
jdk:java开发工具包,提供了jre环境+额外的命令工具
jre:Java Runtime Environment
jre:java运行环境,提供了java最基本的环境与命令(jvm环境+java命令)
jdk与jre提供了jvm环境
三者的关系:

因此,直接安装jdk即可
2、Tomcat极速上手指南
2.1 概述
Tomcat是使用java语言开发的,可以运行java代码程序
WEB中间件 | 说明 |
---|---|
Tomcat | 功能多、全 |
Weblogic | 商业,一般使用oracle数据库 |
Jboss | |
Jetty | 功能少一些 |
商业版本:东方通… | 价格贵 |
jdk就是oracle官方的版本,经典版本jdk1.8,也叫jdk8
jdk就是oracle官方的版本,经典版本jdk1.8,也叫jdk8
openjdk:第三方开发的开源版本
还有其他的各种版本
jdk官网:https://www.oracle.com/java/technologies/downloads/
这里使用:jdk-8u351-linux-x64.rpm(提前下载好)
[root@web01 ~]#rpm -ivh jdk-8u351-linux-x64.rpm
如果是二进制安装jdk,则要配置环境变量:
JAVA_HOME=xxx(jdk安装的路径)
PATH=$JAVA_HOME:$PATH
CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib
2.2 安装Tomcat
Tomcat官网:https://tomcat.apache.org/
这里使用:apache-tomcat-9.0.52.tar.gz
解压到/app/tools/目录
[root@web01 ~]#mkdir -p /app/tools/
[root@web01 ~]#tar xf apache-tomcat-9.0.52.tar.gz -C /app/tools/
#创建软连接
[root@web01 ~]#ln -s /app/tools/apache-tomcat-9.0.52/ /app/tools/tomcat
执行:/app/tools/tomcat/bin/version.sh
显示如下:
[root@web01 ~]#/app/tools/tomcat/bin/version.sh
Using CATALINA_BASE: /app/tools/tomcat
Using CATALINA_HOME: /app/tools/tomcat
Using CATALINA_TMPDIR: /app/tools/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /app/tools/tomcat/bin/bootstrap.jar:/app/tools/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Server version: Apache Tomcat/9.0.52
Server built: Jul 31 2021 04:12:17 UTC
Server number: 9.0.52.0
OS Name: Linux
OS Version: 3.10.0-1160.el7.x86_64
Architecture: amd64
JVM Version: 1.8.0_351-b10
JVM Vendor: Oracle Corporation
[root@web01 ~]#
则表示,jdk、Tomcat都安装成功。
2.3 tomcat管理
默认情况下,不能使用systemctl管理tomcat服务
1)启动服务
执行:/app/tools/tomcat/bin/startup.sh即可启动tomcat
[root@web01 ~]#/app/tools/tomcat/bin/startup.sh
Using CATALINA_BASE: /app/tools/tomcat
Using CATALINA_HOME: /app/tools/tomcat
Using CATALINA_TMPDIR: /app/tools/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /app/tools/tomcat/bin/bootstrap.jar:/app/tools/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.
[root@web01 ~]#
tomcat默认端口:8080
浏览器打开:192.168.10.7:8080
如下所示:

表示Tomcat部署成功
2)停止服务
执行:/app/tools/tomcat/bin/shutdown.sh即可停止tomcat
[root@web01 ~]#/app/tools/tomcat/bin/shutdown.sh
3)logs日志
logs目录中的日志文件:
catalina.out:tomcat应用日志,包括启动、关闭、错误信息等。核心找:startup启动时,错误提示:error、failed、exception
catalina.2023-07-08.log:catalina.out的切割日志,按照每天进行切割
localhost_access_log.2023-07-08.txt:访问日志,未来可以重新定义名字和内容
4)webapps
站点目录
把war包放到webapps目录中,会自动解压,自动部署
5)bin目录
存放tomcat命令
3、日常管理与访问
1、日常启动与维护
启动tomcat查看日志
[root@web01 ~]#tail /app/tools/tomcat/logs/catalina.out
tomcat启动的相关参数:
[root@web01 ~]#ps -ef | grep java
root 5092 1 72 15:31 pts/0 00:00:02 /usr/bin/java -Djava.util.logging.config.file=/app/tools/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /app/tools/tomcat/bin/bootstrap.jar:/app/tools/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/app/tools/tomcat -Dcatalina.home=/app/tools/tomcat -Djava.io.tmpdir=/app/tools/tomcat/temp org.apache.catalina.startup.Bootstrap start
root 5109 1851 0 15:31 pts/0 00:00:00 grep --color=auto java
[root@web01 ~]#
2、systemctl配置文件
默认情况下,tomcat不能使用systemctl进行管理,必须自己书写相关配置文件
systemctl配置文件放在/usr/lib/systemd/system/目录中,名为:xxx.service
修改或设置systemctl配置都要进行重新加载配置。
systemctl配置文件分为3个部分:[Unit]、[Service]、[Install]
systemctl配置文件结构 | 说明 |
---|---|
[Unit] | 指定注释信息、依赖(先后顺序) |
Description | 说明与注释 |
After | 在这里指定的服务之后运行network.target |
[Service] | 用于指定服务开启、关闭、重启命令 |
Type=notify | 指定类型simple或forKing即可 |
ExecStart | 服务启动命令 |
ExecStop | 服务关闭命令 |
ExecReload | 重启命令 |
EnvironmentFile | 配置环境变量的文件(一般对于编译安装,二进制安装需要加上) |
[Install] | 内容固定,用于指定运行级别 |
WantedBy=multi-user.target | 运行级别,一般都是多用户模式 |
查看服务的systemctl配置文件:
systemctl cat 服务名称
查看配置文件的某部分帮助(man systemd.名称),比如查看service帮助:
[root@web01 ~]#man systemd.service
书写systemctl流程:
1、书写配置文件
2、重新加载systemctl配置
3、开始使用systemctl管理服务
tomcat的systemctl配置文件如下:
[root@web01 ~]#vim /usr/lib/systemd/system/tomcat.service
[Unit]
Description=tomcat systemctl config
After=network.target
[Service]
Type=forking
ExecStart=/app/tools/tomcat/bin/startup.sh
ExecStop=/app/tools/tomcat/bin/shutdown.sh
ExecReload=/app/tools/tomcat/bin/shutdown.sh && sleep 1 && /app/tools/tomcat/bin/startup.sh
[Install]
WantedBy=multi-user.target
重新加载配置:
[root@web01 ~]#systemctl daemon-reload
测试:
先把手动启动的tomcat停止服务:
[root@web01 ~]#pkill java
使用systemctl管理tomcat服务:
[root@web01 ~]#systemctl status tomcat
查看进程:
[root@web01 ~]#ps -ef | grep java
root 7430 1 11 16:08 ? 00:00:04 /usr/bin/java -Djava.util.logging.config.file=/app/tools/tomcat/conf/logging.properties -Djava.
启动成功。
4、代码运行
开发人员书写的java代码:java源代码,无法直接部署到tomcat中
需要对源码进行编译:生成war包或jar包
如何运行java相关软件包 | 说明 | 应用场景 |
---|---|---|
war包 | 需要放在java容器中运行,比如,放到tomcat的webapps目录中(tomcati会自动加载与运行) | 功能复杂 |
jar包 | 不需要java容器,内置tomcat,只需要jdk,通过java -jar xxx.jar运行 | 功能简单 |
如何编译java源代码:
通过maven、Gradle把源代码编译生成war包或jar包
案例01:war案例,运行memtest.war包案例,放在webapps目录,然后访问即可
[root@web01 ~]#cp memtest.war /app/tools/tomcat/webapps/
浏览器打开:192.168.10.7:8080/memtest/meminfo.jsp
如下:

案例02:jar包案例,运行nginxWebUI-3.4.0.jar包案例,直接命令行运行
[root@web01 ~]#java -jar -Dfile.encoding=UTF-8 nginxWebUI-3.4.0.jar --server.port=8848 --project.home=/root/nginxWebUI/
参数说明:
--server.port:指定端口,默认:8080
--project.home:项目配置文件,存放数据库文件,证书文件,日志等,默认为/home/nginxWebUI/
浏览器打开:192.168.10.7:8848
如下:

注册登录后如下图:

前面执行的命令是在前台,会输出一堆信息。因此可以后台执行:
[root@web01 ~]#nohup java -jar -Dfile.encoding=UTF-8 nginxWebUI-3.4.0.jar --server.port=8848 --project.home=/root/nginxWebUI/ > /dev/null &
命令后面加&,表示后台执行
nohup 英文全称 no hang up(不挂起),用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行。
nohup 命令,在默认情况下(非重定向时),会输出一个名叫 nohup.out 的文件到当前目录下,如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。
这里使用nohub把日志输出到 /dev/null,也就是不保存日志
5、tomcat管理端
管理端:调优的时候临时使用,一般需要关闭
开启管理端,需要修改配置文件,tomcat目录下的conf/tomcat-user.xml
修改配置文件/app/tools/tomcat/conf/tomcat-users.xml,添加以下内容:
<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user username="tomcat" password="12345" roles="manager-gui,admin-gui"/>
Tomcat8.5开始管理端只能在127.0.0.1访问
curl -u tomcat:12345 http://127.0.0.1:8080/manager/status
修改配置件(host-manager/META-INF/context.xml、host-manager/WEB-INF/manager.xml 、manager/META-INF/context.xml ):
[root@web01 ~]#cd /app/tools/tomcat/webapps/
[root@web01 /app/tools/tomcat/webapps]#sed -i 's#127#\\d+#g' ./host-manager/META-INF/context.xml ./host-manager/WEB-INF/manager.xml ./manager/META-INF/context.xml
重启tomcat服务

点击:Server Stauts,登录后如下:
