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,登录后如下: