1. 准备工作:系统更新与工具安装
首先更新Ubuntu系统软件包列表,确保后续安装的组件为最新版本:
sudo apt update && sudo apt upgrade -y
安装常用工具(如vim、wget、curl),便于后续操作:
sudo apt install vim wget curl -y
2. 安装Java开发环境(JDK)
选择OpenJDK 11(或项目要求的版本,如8、17)作为Java运行环境,安装命令如下:
sudo apt install openjdk-11-jdk -y
验证JDK安装是否成功,需显示Java版本信息:
java -version # 检查运行时环境
javac -version # 检查编译工具
3. 配置Java环境变量(可选但推荐)
为避免每次使用Java命令需指定完整路径,配置JAVA_HOME环境变量。编辑~/.bashrc文件(用户级配置)或/etc/profile(系统级配置):
vim ~/.bashrc
在文件末尾添加以下内容(根据实际JDK路径调整,可通过update-alternatives --config java查看路径):
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
使配置立即生效:
source ~/.bashrc
4. 编译与打包Java项目
根据项目构建工具选择对应命令:
pom.xml文件),执行以下命令清理旧构建并生成可执行JAR/WAR文件:mvn clean package
生成的JAR/WAR文件默认位于target/目录下(如your-project-1.0.0.jar)。build.gradle文件),执行以下命令:gradle build
生成的JAR/WAR文件位于build/libs/目录下。javac编译源代码(如HelloWorld.java),再打包为JAR:javac src/*.java -d build/classes # 编译源代码到build/classes目录
jar cvf app.jar -C build/classes . # 打包为app.jar
5. 部署到Ubuntu服务器
将生成的JAR/WAR文件上传至服务器,可使用scp命令(本地到远程):
scp target/your-project.jar your_username@your_server_ip:/path/to/deploy
输入服务器密码后,文件将传输至指定目录(如/opt/java-apps)。
6. 启动Java应用
java -jar /path/to/deploy/your-project.jar
nohup命令让应用在后台持续运行,日志输出到app.log:nohup java -jar /path/to/deploy/your-project.jar > /path/to/deploy/app.log 2>&1 &
sudo vim /etc/systemd/system/your-java-app.service
写入以下内容(根据实际路径和用户调整):[Unit]
Description=Your Java Application
After=syslog.target network.target
[Service]
User=ubuntu # 运行服务的用户(建议用非root)
WorkingDirectory=/path/to/deploy
ExecStart=/usr/bin/java -jar /path/to/deploy/your-project.jar
Restart=always # 进程崩溃后自动重启
RestartSec=3 # 重启间隔3秒
Environment="JAVA_OPTS=-Xms512m -Xmx1024m" # JVM内存配置
[Install]
WantedBy=multi-user.target
使服务生效并启动:sudo systemctl daemon-reload
sudo systemctl start your-java-app
sudo systemctl enable your-java-app # 开机自启
查看服务状态(确认是否运行):sudo systemctl status your-java-app
7. 配置防火墙(允许外部访问)
若应用需要通过公网IP或域名访问,需开放对应端口(如8080):
sudo ufw allow 8080/tcp # 允许TCP协议的8080端口
sudo ufw enable # 启用防火墙(若未启用)
验证端口是否开放:
sudo ufw status
8. 可选:配置反向代理(如Nginx)
若需通过域名访问或启用HTTPS,可使用Nginx作为反向代理。安装Nginx:
sudo apt install nginx -y
编辑Nginx配置文件(如默认站点配置):
sudo vim /etc/nginx/sites-available/default
添加以下内容(将请求转发到本地的8080端口):
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 restart nginx
9. 日志管理与监控
nohup或systemd,可通过以下命令实时查看日志:tail -f /path/to/deploy/app.log # nohup日志路径
journalctl -u your-java-app -f # systemd服务日志
systemctl status查看服务状态,或通过JMX、Prometheus等工具监控JVM性能。以上步骤覆盖了Java项目在Ubuntu上的完整编译部署流程,可根据项目类型(如Spring Boot、Java Web)和需求调整细节(如数据库连接、环境变量配置)。