下面按步骤说明如何在腾讯云轻量应用服务器(Lighthouse)上安装 JDK 并部署 Java 程序。示例以 Ubuntu 20.04/22.04 为例,CentOS 类似可参考对应包管理命令。
一、基础准备
-
登录轻量服务器
- 在腾讯云控制台 → 轻量应用服务器 → 找到你的实例 → “连接” → 使用 SSH 客户端或网页终端登录。
- 使用 root 或具有 sudo 权限的用户登录:
ssh root@<你的公网IP> # 或使用普通用户 ssh your_user@<你的公网IP>
-
更新系统软件源
# Ubuntu / Debian sudo apt update && sudo apt upgrade -y # CentOS / Rocky / AlmaLinux sudo yum makecache sudo yum update -y
二、安装 JDK
方案 A:使用官方 OpenJDK(推荐)
1. Ubuntu / Debian
# 查看可用版本
apt list --upgradable | grep openjdk
# 安装默认版本(通常是 openjdk-17-jdk)
sudo apt install openjdk-17-jdk -y
# 或者指定版本,例如 openjdk-11-jdk
# sudo apt install openjdk-11-jdk -y
验证安装:
java -version
javac -version
2. CentOS / Rocky / AlmaLinux
# 安装默认 OpenJDK 17
sudo yum install java-17-openjdk-devel -y
# 或安装 OpenJDK 11
# sudo yum install java-11-openjdk-devel -y
验证:
java -version
javac -version
如果你需要特定版本(如 JDK 8、11、17),可以搜索对应包名或从官网下载 tar.gz 手动安装。
方案 B:从官网下载 Tarball 安装(更灵活)
- 访问 Oracle 或 Adoptium 官网下载对应版本的 Linux x64 tar.gz。
- 上传到服务器(可以用
scp或直接在服务器上 wget)。
示例(Adoptium JDK 17):
cd /opt
sudo mkdir -p jdk
cd /opt/jdk
# 假设你已下载到当前目录 jdk-17_linux-x64.tar.gz
tar -xzf jdk-17_linux-x64.tar.gz
- 配置环境变量(以 bash 为例):
export JAVA_HOME=/opt/jdk/jdk-17 export PATH=$JAVA_HOME/bin:$PATH
永久生效
echo ‘export JAVA_HOME=/opt/jdk/jdk-17’ >> ~/.bashrc
echo ‘export PATH=$JAVA_HOME/bin:$PATH’ >> ~/.bashrc
source ~/.bashrc
验证:
```bash
java -version
三、将 Java 程序部署到服务器
假设你有一个打包好的 your-app.jar(Spring Boot 等可执行 jar)。
1. 上传 JAR 文件
本地机器上使用 scp 上传:
scp your-app.jar root@<你的公网IP>:/opt/app/
或在服务器上先创建目录再上传:
mkdir -p /opt/app
如果是 Maven 项目,也可以直接在服务器上编译后打包:
# 进入项目根目录
cd /path/to/project
# 安装 Maven(如果未安装)
sudo apt install maven -y # Ubuntu
# 或 sudo yum install maven -y # CentOS
# 打包
mvn clean package -DskipTests
# 生成的 jar 一般在 target/*.jar
2. 设置运行目录与权限
sudo mkdir -p /opt/app
sudo chown -R $USER:$USER /opt/app
# 确保当前用户有写权限
3. 启动方式选择
方式 A:简单后台运行(适合测试/开发)
cd /opt/app
nohup java -Xms512m -Xmx1G -jar your-app.jar > app.log 2>&1 &
-Xms/-Xmx根据内存调整堆大小。app.log为日志文件。- 查看进程:
ps aux | grep java - 停止进程:
kill <PID>
方式 B:使用 systemd 管理服务(推荐生产环境)
- 创建服务文件:
sudo nano /etc/systemd/system/myapp.service
内容示例(根据实际情况修改路径和参数):
[Unit]
Description=My Spring Boot Application
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/opt/app
ExecStart=/usr/bin/java -Xms512m -Xmx1G -jar /opt/app/your-app.jar
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
-
重载 systemd 配置并启用服务:
sudo systemctl daemon-reload sudo systemctl enable myapp.service sudo systemctl start myapp.service -
查看状态:
sudo systemctl status myapp.service -
查看日志:
sudo journalctl -u myapp.service -f
如需自定义日志输出,可以在应用中使用 logback/log4j 配置,将日志写入 /opt/app/logs/ 等目录。
四、开放端口(防火墙与安全组)
Java 程序通常监听某个端口(如 8080)。
-
轻量服务器安全组
在腾讯云控制台 → 轻量应用服务器 → 安全组规则中,添加入站规则:- 协议:TCP
- 端口:8080(或你的实际端口)
- 来源:0.0.0.0/0 或特定 IP
-
服务器内部防火墙(如有)
- Ubuntu (ufw):
sudo ufw allow 8080/tcp sudo ufw enable - CentOS (firewalld):
sudo firewall-cmd --permanent --add-port=8080/tcp sudo firewall-cmd --reload
- Ubuntu (ufw):
五、可选:使用 Nginx 反向X_X + HTTPS
如果需要域名访问、HTTPS:
-
安装 Nginx:
# Ubuntu sudo apt install nginx -y # CentOS sudo yum install nginx -y -
配置反向X_X(示例
/etc/nginx/sites-available/myapp):server { listen 80; server_name your-domain.com; location / { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } -
启用站点并重启 Nginx:
sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl restart nginx -
申请 SSL 证书(可使用 Let’s Encrypt + certbot):
sudo apt install certbot python3-certbot-nginx -y sudo certbot --nginx -d your-domain.com
六、常见问题排查
- 无法连接端口:检查安全组、服务器防火墙、应用是否监听 0.0.0.0 而不是 127.0.0.1。
- Java 启动报错:查看
app.log或journalctl日志,确认内存参数、类路径、配置文件是否正确。 - JDK 版本不兼容:确认编译 JDK 版本与运行 JDK 版本一致或向下兼容。
如果你提供:
- 操作系统类型及版本
- Java 程序类型(Spring Boot、普通 Jar、Web 项目等)
- 需要的端口/域名情况
我可以给出更贴合你场景的完整命令和配置文件示例。
云小栈