JDK 功能说明与配置说明.
理论基础
JDK服务安全与启动
- 1.官网下载JDK直接解压
- 2.使用rpm包安装(可能影响其他用户程序使用),默认是
/usr/java/
目录,默认JRE_HOME环境变量是/usr/
也是可以用的java可执行文件会安装到/usr/bin
中 里面又是链接到/etc/alternatives/java
然后继续链接,最好配置环境变量其他参数都配置上或者在tomcat内setclasspath.sh配置JDK环境避免环境冲突新安装新版本JDK导致问题。CLASSPATH环境变量可以不用配置的,默认位置没有改的话java程序是可以找得到的,当然可以根据需要添加。对于JAVA_HOME与JRE_HOME如果生产环境其实只需要JRE_HOME就可以,JRE_HOME没有javac命令。TOMCAT启动有JRE_HOME就可以启动了,但是tomcat是APP容器,它会将JSP编译成CLASS文件,需要JDK的支持才可以,jre只支持已有的.class文件,不能对.java文件或者jsp文件进行编译,所以需要用jdk。但是tomcat5.5及以下版本主要是依赖JDK去编译JSP文件生成class的。但Tomcat6.0使用了Eclipse的JDT技术,因此不再依赖JDK运行。
tomcat版本区别,独立版tomcat有window 32、64版本和unix版本 , 而embedded tomcat(嵌入式tomcat,嵌入到应用中,如springboot)没有区分操作系统。而embedded版本bug比较多,可能不支持native和APR。
配置
Linux普通用户java环境变量配置(不影响其他用户)
- 上传JDK安装包到服务器
- 解压
tar -zxvf jdk-8u181-linux-x64.tar.gz
,也可以解压到(opt、user/local目录中) - 配置环境变量
- vi ~/.bash_profile
- 在.bash_profile文件中填入如下语句:
1
2
3
4export PATH
export JAVA_HOME=/home/admin/apps/jdk1.8.0_181
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar - 保存退出
qw!
- 生效
source ~/.bash_profile
- 查看版本
java -version
Linux 安装多个版本JDK并设置默认版本(可能会影响现有系统其他用户使用)
- 上传JDK安装包到服务器,比如/usr/local
- tar zxcf jdk-8u181-linux-x64.tar.gz
- 管理员用户编辑
/etc/profile
:1
2
3
4export JAVA_HOME=/usr/local/jdk1.8.0_181
export JRE_HOME=/usr/local/jdk1.8.0_181/jre
export CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin - 使生效:
source /etc/profile
- 验证:
java -version
- 选择使用已经安装版本:
alternatives --config java
- 没有新安装的1.8.1版本jdk,需要使用命令将新安装的jdk放入到java bin中
alternatives --install /usr/bin/java java /usr/local/jdk1.8.0_181/bin/java 4
在tomcat中配置环境变量
1 | vi setclasspath.sh 第二行,或者开头注释后面,添加下面配置 |
tomcat
tomcat工作的模式有bio, nio , apr 这三种模式,bio模式在tomcat7是默认方式,tomcat8默认使用的是nio
1 | tomcat7 这个配置在protocol="HTTP/1.1",这个默认使用了bio,tomcat8默认是nio |
配置成服务
CentOS7 systemctl如果配置错了最好新建一个服务文件尝试,不然可能系统一直识别到的是旧的有问题的文件。
1 | [Unit] |
Environment与Type都可以去掉。
tomcat/bin/setenv.sh
可以增加这个文件内容如下:
1 | export CATALINA_HOME=/home/test/tomcat |
然后再在system文件中添加PIDFile=/home/test/tomcat/tomcat.pid
,WorkingDirectory=/home/test/tomcat
可有可无。
注意:
修改配置需要重启不然旧的状态会一直保留:systemctl stop tomcat.service
, systemctl start tomcat.service
,还需要重新加载配置systemctl daemon-reload
。注意如果用root权限启动了可能导致日志文件无法反问,导致无法启动。systemctl status tomcat.service
可以查看进程状态信息,如果有错误也会显示。
注意
使用普通用户启动Tomcat,不要随意切换到root用户启动,如果使用的是jsp,会导致后面部分编译出来的jsp页面缓存文件切换回普通用户的时候没有相关权限。