Java 运行环境:在 Linux 部署 JDK 与 Tomcat 详细步骤
部署 Java 运行环境是 Linux 服务器运维的常见需求。今天主机选这篇 Linux 教程直接带你把 JDK 和 Tomcat 从头装好,排掉那些老手才知道的坑,确保应用能跑起来。

前置准备:检查 Linux 系统与依赖
动手前先确认系统版本,不同发行版包管理命令不同。别问为什么,先跑下面命令看一眼。
查看系统版本,判断是 CentOS 还是 Ubuntu
cat /etc/os-release
确保 wget 和 curl 已安装,没装就补上
CentOS/RHEL 用 yum
sudo yum install -y wget curl
Ubuntu/Debian 用 apt
sudo apt install -y wget curl
万一报错了别慌,通常是网络问题或源没配好,换个国内镜像源再试。这一步卡住后面全白搭。
第一步:安装 JDK(OpenJDK vs Oracle JDK 选择)
生产环境建议用 OpenJDK,免费且兼容性好。Oracle JDK 有版权限制,个人测试无所谓,线上别乱用。
用包管理器安装 OpenJDK 11(推荐)
CentOS 安装 OpenJDK 11
sudo yum install -y java-11-openjdk-devel
Ubuntu 安装 OpenJDK 11
sudo apt install -y openjdk-11-jdk
验证安装是否成功
java -version
看到类似 `openjdk version “11.0.22”` 的输出就对了。如果提示命令找不到,检查下是否装错了包名。
手动解压安装 Oracle JDK(备选方案)
有些项目强制要求 Oracle JDK,那就手动来。先去 Oracle 官网下载 .tar.gz 包,然后传到服务器。
创建安装目录
sudo mkdir -p /usr/local/java
解压到目标目录(文件名根据实际版本改)
sudo tar -zxvf jdk-11.0.22_linux-x64_bin.tar.gz -C /usr/local/java/
配置环境变量
sudo vi /etc/profile
在文件末尾追加以下内容:
JAVA_HOME 路径根据实际解压目录改
export JAVA_HOME=/usr/local/java/jdk-11.0.22
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
使配置生效
source /etc/profile
验证
java -version
**老鸟叮嘱**:手动安装时,`JAVA_HOME` 路径写错是最常见的坑。解压后先 `ls` 确认目录名,别把版本号写岔了。万一报 “command not found”,检查 `/etc/profile` 最后一行有没有语法错误。
第二步:配置 Tomcat(从下载到启动)
Tomcat 是 Java Web 应用最常用的容器,部署前先确认 JDK 已经装好。
下载并解压 Tomcat
进入 /usr/local 目录
cd /usr/local
下载 Tomcat 9(版本号按需改)
sudo wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.86/bin/apache-tomcat-9.0.86.tar.gz
解压
sudo tar -zxvf apache-tomcat-9.0.86.tar.gz
重命名,方便管理
sudo mv apache-tomcat-9.0.86 tomcat9
启动 Tomcat 并测试
进入 Tomcat 的 bin 目录
cd /usr/local/tomcat9/bin
启动 Tomcat(会输出启动日志,耐心等几秒)
sudo ./startup.sh
检查是否启动成功,看进程
ps -ef | grep tomcat
如果看到 `org.apache.catalina.startup.Catalina start` 这样的进程,说明启动了。此时在浏览器访问 `http://服务器IP:8080`,能看到 Tomcat 默认页面。
排障:Tomcat 启动失败常见原因
• **端口被占用**:8080 被其他服务占了,改 `server.xml` 里的端口。
• **JDK 环境变量未生效**:手动安装 JDK 时,Tomcat 找不到 `JAVA_HOME`。在 `catalina.sh` 开头加一行 `export JAVA_HOME=/usr/local/java/jdk-11.0.22` 即可。
• **内存不足**:VPS 内存太小,修改 `catalina.sh` 中的 `CATALINA_OPTS=”-Xms512m -Xmx1024m”` 调低点。
第三步:配置防火墙与安全组
Tomcat 启动后,外网可能访问不了,问题多半出在防火墙。
CentOS 放行 8080 端口
sudo firewall-cmd –zone=public –add-port=8080/tcp –permanent
sudo firewall-cmd –reload
Ubuntu 用 ufw
sudo ufw allow 8080/tcp
确认防火墙规则生效
sudo firewall-cmd –list-ports
如果云服务器(如阿里云、腾讯云)还有安全组规则,记得去控制台放行 8080 端口的入方向。**老鸟叮嘱**:防火墙和安全组是两个独立系统,必须都放行,否则端口开了也白搭。
老鸟叮嘱:部署 Java 环境时最容易翻车的三个细节
1. **JDK 版本匹配**:Tomcat 9 需要 JDK 8 以上,Tomcat 10 需要 JDK 11 以上。版本不对,启动报错 `Unsupported major.minor version`。
2. **不要用 root 跑 Tomcat**:出于安全考虑,建议创建专用用户 `useradd -r tomcat`,然后 `chown -R tomcat:tomcat /usr/local/tomcat9`。用 root 跑万一被入侵,服务器直接裸奔。
3. **日志位置**:Tomcat 日志在 `logs/catalina.out`,排查问题先看这个文件,别瞎猜。
FAQ
Linux SSH 连不上怎么办?
先检查网络和防火墙,确认 22 端口是否放行。如果云服务器安全组没开 22 端口,SSH 肯定连不上。
VPS 防火墙端口放行后还是访问不了是什么原因?
两个常见原因:一是安全组没配,二是 Tomcat 监听在 127.0.0.1 而不是 0.0.0.0。修改 `server.xml` 中 Connector 的 `address=”0.0.0.0″` 即可。
Linux 小白可以直接用 root 账号操作吗?
不建议。日常操作用普通用户,需要提权时加 `sudo`。root 误操作删系统文件,哭都来不及。
BBR 开启后为什么速度没有明显提升?
BBR 只优化 TCP 拥塞控制,对延迟高、丢包少的链路效果明显。如果服务器本身带宽小或源站慢,BBR 救不了。
Tomcat 启动后,访问 8080 端口显示 404 怎么办?
默认页面在 `webapps/ROOT` 目录,如果被删除或改过,就会 404。重新部署应用或恢复 ROOT 目录即可。
JDK 安装后 `javac` 命令找不到?
说明只装了 JRE 没装 JDK。`devel` 包才带编译器,用 `yum install java-11-openjdk-devel` 重装一次。
转载请注明出处:https://www.zhujixuan.com/jishujiaocheng/9462.html 商家投稿邮箱:zhujixuanblog@qq.com
