1. 准备工作:安装Java环境
在Ubuntu上部署Java项目前,需先安装Java运行环境(JRE/JDK)。推荐使用OpenJDK(开源且稳定),以OpenJDK 17为例,操作如下:
sudo apt update && sudo apt install openjdk-17-jdk -y # 安装OpenJDK 17
java -version # 验证安装(输出版本信息则表示成功)
若需指定Java版本(如Java 11),可将命令中的openjdk-17-jdk替换为openjdk-11-jdk。
2. 编译Java项目
mvn clean package,生成的JAR文件位于target/目录(如springboot-demo.jar)。gradle build,生成的JAR文件位于build/libs/目录。3. 部署Java应用到服务器
将编译好的JAR文件上传至服务器(如/opt/java-app/目录),常用scp命令:
scp target/springboot-demo.jar username@your_server_ip:/opt/java-app/
登录服务器,进入目标目录验证文件是否存在:ls /opt/java-app/。
4. 启动Java应用
java -jar /opt/java-app/springboot-demo.jar,日志会输出到终端,关闭终端则应用停止。nohup命令让应用在后台持续运行,并将日志输出到app.log文件:nohup java -jar /opt/java-app/springboot-demo.jar > app.log 2>&1 &
通过tail -f app.log查看实时日志。5. 配置systemd服务(实现开机自启与管理)
为确保应用随服务器重启自动启动,建议创建systemd服务:
sudo vim /etc/systemd/system/java-app.service
写入以下内容(根据实际路径修改):
[Unit]
Description=Java Application Service
After=network.target
[Service]
User=ubuntu # 运行服务的用户(建议用非root)
WorkingDirectory=/opt/java-app # 应用所在目录
ExecStart=/usr/bin/java -jar /opt/java-app/springboot-demo.jar # 启动命令
Restart=always # 失败时自动重启
RestartSec=10 # 重启间隔(秒)
Environment="JAVA_OPTS=-Xms512m -Xmx1024m" # JVM内存配置(可选)
[Install]
WantedBy=multi-user.target
保存后执行以下命令启用并启动服务:
sudo systemctl daemon-reload # 重新加载服务配置
sudo systemctl start java-app # 启动服务
sudo systemctl enable java-app # 设置开机自启
sudo systemctl status java-app # 查看服务状态(确认是否运行中)
6. 配置防火墙(允许外部访问)
若应用监听在8080端口(或其他非默认端口),需开放该端口:
sudo ufw allow 8080/tcp # 允许TCP协议的8080端口
sudo ufw enable # 启用防火墙(若未启用)
sudo ufw status # 查看防火墙状态(确认端口已开放)
7. 可选:配置Nginx反向代理(提升访问体验)
若需通过域名访问或启用HTTPS,可使用Nginx作为反向代理。安装Nginx:
sudo apt install nginx -y
编辑Nginx配置文件(如/etc/nginx/conf.d/java-app.conf):
server {
listen 80;
server_name your-domain.com; # 替换为你的域名或服务器IP
location / {
proxy_pass http://localhost:8080; # 转发到Java应用的端口
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
保存后重启Nginx:
sudo systemctl reload nginx
此时可通过http://your-domain.com访问Java应用。
8. 可选:部署传统Servlet应用(如WAR文件)
若项目为Servlet应用(生成WAR文件),可使用Tomcat作为应用服务器:
sudo apt install tomcat9 -y # 安装Tomcat 9
webapps/目录:sudo cp your-app.war /var/lib/tomcat9/webapps/
sudo systemctl start tomcat9 # 启动Tomcat
sudo systemctl enable tomcat9 # 设置开机自启
Tomcat会自动解压WAR文件,应用可通过http://your-server-ip:8080/your-app/访问。