Ubuntu-server 22.04.1配置java环境(包含jdk和tomcat)以及解决出现问题
一. 配置java–JDK环境
一、下载JDK
本次演示与jdk-17_linux-x64_bin.tar.gz
下载链接:https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz
jdk下载
你也可以在Windows环境下,通过tobby传到ubuntu文件系统中,也可以在ubuntu系统中进行下载
二、解压JDK包
在下载目录打开终端,使用如下命令解压:
root@xiaozhi-virtual-machine:/home/xiaozhi/java# tar -zxvf jdk-17_linux-x64_bin.tar.gz
注意:按tab键会自动补齐文件名。
解压得到jdk文件夹,我的是jdk-17.0.4.1,
用如下命令将该文件夹移动到/usr/local目录下
root@xiaozhi-virtual-machine:/home/xiaozhi/java# mv jdk-17.0.4.1 /opt/jdk
三、配置Java环境
使用如下命令打开vim ~/.bashrc
文件
如果vim 打不开先 安装vim编辑器:sudo apt-get install vim
;
使用命令sudo vim ~/.bashrc
,然后在文件末尾添加如下内容:
export JAVA_HOME=/opt/jdk/jdk-17.0.4.1
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
注意:按:" i "进行编辑,保存退出即先按一下ESC然后 ":WQ!"保存退出。
最后保存。输入以下命令, 令系统配置文件.bashrc立即生效 :source ~/.bashrc
四、测试Java安装
在终端输入java -version命令测试,得到刚刚安装的java版本信息
在终端输入javac命令,得到javac的可选项
到此ubuntu安装java环境就到处结束。
二. 部署tomcat
资源关联有tomcat,直接上传到服务器
tar -zxvf btomcat.tar.gz
切记不要先解压缩,在上传,这样会提示没权限,只能这样
chmod 777 *
chmod 777 */
chmod 777 */*
...
把将要运行的java程序放到btomcat目录下webapps目录
然后切换到bin目录
./startup.sh
错误一:
安装tomcat时启动不了,关闭时出现错误原因:
./bin/catalina.sh: 1: eval: /usr/java/jdk-17.0.1/jre/bin/java: not found
原因:jdk11以上jre消失,与tomcat寻不到jre冲突所致
解决如下:
vi /etc/profile
或者
vim ~/.bashrc
上面这两个路径不统一,说白了就是在哪配置的java环境在哪改
export JRE_HOME=$JAVA_HOME
:wq
保存source /etc/profile
或者 source ~/.bashrc
使生效
错误二:Linux虚拟机下Tomcat启动成功但找不到监听端口8080
前言
不是没有关闭防火墙或没有放行8080端口给外部使用,而是JDK和Tomcat的版本匹配问题
环境
环境一(对应的是问题一):
Ubuntu-server 22.04(新建的)
JDK1.7
Tomcat 9.0.43
环境二(对应的是问题二):
CentOS7
JDK1.8
Tomcat 10.1.16
问题:
问题一:
去查看监听端口8080:
netstat -anp | grep 8080
kill -9 pid
间隔几秒
netstat -anp | grep 8080
进入btomcat目录下呢的conf目录
vim server.xml
修改tomcat启动端口号
:set nu
回车,这时候会显示出行号,修改第69行
问题二:
当时镜像网站:https://dlcdn.apache.org/ tomcat只有10.1.16版本了,直接wget下载的.tar.gz但是,解压后运行多次./startup.sh 都显示
但是我去查看监听端口8080:
netstat -anp | grep 8080
啥也没有,说明这个这个端口上没有进程在运行,试了好多遍都没有变化
问题解决
查阅后发现,是jdk版本和tomcat版本不匹配导致的
后面去 这个镜像网站 https://archive.apache.org/下载到了tomcat 10.0.27的.tar.gz,再解压运行startup.sh,并且netstat -anp | grep 8080 查看监听端口8080,发现可以找到,在虚拟机内
curl 127.0.0.1:8080
也能得到对应的结果
虚拟机关闭linux防火墙 或 对外放行8080端口后,在外部也可以访问
虚拟机IP:8080 我的是 192.168.88.130:8080
可以得到正确的结果,说明是jdk和tomcat版本不匹配的问题