前言
Tomcat 也一度成为 Java开发人员的首选。其开源、占用系统资源少、跨平台等特性被深受喜爱。主要学习如何部署 Tomcat 服务,根据生产环境实现多个虚拟主机的配置,常见的tomcat优化, Tomcat 服务及常见的内存溢出如何处理。
Java
Java原指的是印度尼西亚的爪哇岛,人口众多,盛产咖啡、橡胶 。 ava语言最早是在1991年开始设计的,最初叫Oak项目,它初衷是跑在不同机顶盒设备中的。 1993年网景公司成立。Oak项目组很快他们发现了浏览器和动态网页技术这个巨大的市场,转向WEB方向。并首先发布了可以让网页动起来的Applet技术(浏览器中嵌入运行Java字节码的技术)。 简单了解
java组成
- 语言、语法规范。关键字,如: if、for、class等
- 源代码source code
- 依赖库,标准库(基础).I第三方库(针对某些应用)。底层代码太难使用且开发效率低,封装成现成的库
- JVM虚拟机。将源代码编译为中间码即字节码后,再运行在JVM之上
由于各种操作系统ABl不一样,采用编译方式,需要为不同操作系统编译成相应格式的二进制程序才能运行。
1995年,Java发布Applet技术,Java程序在后台编译成字节码,发送到浏览器端,在浏览器中运行一个Applet程序,这段程序是运行在另外一个VM进程中的但是这种在客户端运行ava代码的技术,会有很大的安全问题。1997年CGl技术发展起来,动态网页技术开始向后端开发转移,在后端将动态内容组织好,拼成HTML发回到浏览器端。
java程序写好后,使用java的编译器,编译成字节码(二进制文件),运行在java虚拟机上,在编译成 各个系统的的执行文件
java实现动态网页功能
servelt
本质是一段java程序:原理就是在java程序中嵌入 html语言
jsp
JSP本质是提供一个HTML模板,也就是在网页中预留以后填充的空,后续将Java程序运行生成的数据对HTML进行填空就可以了。如果网页布局需要调整!JAVA源代码不需要很大的调整 JSP是基于Servlet实现,JSP将表现和逻辑分离 。
jdk
jdk :包含java程序 虚拟机 java运行库 (装java环境)
ava语言的软件开发工具包JDK协议基于JRL(JavaResearch License)协议
jre: 虚拟机 java运行库 Java Runtime Environment缩写,指Java运行时环境,包含JVM +Java核心类库
jvm: 虚拟机
从2019年1月份开始,Oracle JDK 开始对 Java SE 8 之后的版本开始进行商用收费, OpenJDK是Sun公司采用GPL v2协议发布的JDK开源版本,于2009年正式发布 官方网站:https://openjdk.java.net/projects/jdk6/
OpenJDK使用GPL v2可以用于商业用途。目前由红帽维护。OpenJDK也有在其基础上的众多发行版,比如阿里的Dragonwell。 相对来说,Oracle jDK具有更好的响应能力和JVM性能,更加稳定。
在Centos中可以直接本地yum安装openjdk
[root@xyy7 ~]# yum list "*jdk*" #可以查看可安装版本
[root@xyy7 ~]# yum -y install java-1.8.0-openjdk.x86_64 java-1.8.0-openjdk-devel #选择需要版本进行安装
[root@xyy7 ~]# java -version #查看安装版本
.openjdk version "1.8.0_412"
OpenJDK Runtime Environment (build 1.8.0_412-b08)
OpenJDK 64-Bit Server VM (build 25.412-b08, mixed mode)
安装oracle官方 JDK
官网:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
官网需要注册才可以下载。
#需要登录下载:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
[root@node2 data]#yum install jdk-8u291-linux-x64.rpm -y
[root@node2 data]#yum history info 6
安装 jdk1.8-2000:1.8.0_291-fcs.x86_64 @/jdk-8u291-linux-x64
[root@node2 data]#rpm -ql jdk1.8-2000:1.8.0_291-fcs
#查看文件列表
[root@node2 data]#find / -name javac
/usr/java/jdk1.8.0_291-amd64/bin/javac
[root@centos7 ~]#vim /etc/profile/jdk.sh
[root@centos7 ~]#cat /etc/profile.d/jdk.sh
export JAVA_HOME=/usr/java/default
export PATH=$JAVA_HOME/bin:$PATH
#以下两项非必须项
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib/:$JRE_HOME/lib/
二进制安装
[root@centos7 ~]#tar xvf jdk-8u291-linux-x64.tar.gz -C /usr/local/
[root@centos7 ~]#cd /usr/local/
[root@centos7 ~]#ln -s jdk1.8.0_291/ jdk
#初始化环境变量
[root@centos8 ~]#vim /etc/profile.d/jdk.sh
[root@centos8 ~]#cat /etc/profile.d/jdk.sh
export JAVA_HOME=/usr/local/jdk
export PATH=$JAVA_HOME/bin:$PATH
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib/:$JRE_HOME/lib/
[root@centos8 ~]#. /etc/profile.d/jdk.sh
---------------------------------------------------------------------
#注意:JAVA_HOME变量必须设置,否则tomcat启动时会出下面错误
[root@centos7 ~]#catalina.sh
Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
At least one of these environment variable is needed to run this program
[root@centos8 ~]#startup.sh
Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
At least one of these environment variable is needed to run this program
#验证安装 需要先退出终端在回来就可以了否则还是原来的 jdk版本
[root@centos7 ~]#java -version
java version "1.8.0_241"
Java(TM) SE Runtime Environment (build 1.8.0_241-b07)
Java HotSpot(TM) 64-Bit Server VM (build 25.241-b07, mixed mode)
[root@centos8 ~]#which java
/usr/local/jdk/bin/java