在Ubuntu上部署Java项目通常涉及以下几个步骤:
检查系统是否已安装Java:
在终端中输入 java -version
,如果已经安装,会显示Java的版本信息。如果未安装,则需要进行安装。
安装OpenJDK(以Ubuntu为例):
sudo apt update
sudo apt install openjdk-11-jdk
验证安装: 安装完成后,再次检查Java版本以确认安装成功。
配置Java环境变量(可选):
编辑 ~/.bashrc
或 /etc/profile
文件,设置 JAVA_HOME
环境变量。
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
保存文件后,在终端中运行 source ~/.bashrc
使配置生效。
打包项目(如果是Maven或Gradle项目):
mvn clean package
命令,生成可执行的JAR文件(通常在 target
目录下)。gradle build
命令来构建项目并生成可执行文件。上传项目文件到Linux服务器:
使用 scp
命令将本地的JAR文件上传到Linux服务器。例如:
scp myproject.jar user@server:/home/user/projects
简单的JAR文件运行方式: 进入JAR文件所在的目录,运行以下命令来启动项目:
java -jar myproject.jar
后台运行项目(使用 nohup
或 systemctl
):
使用 nohup
:
nohup java -jar myproject.jar &
运行后,会输出一个日志文件的路径(通常是 nohup.out
),项目的控制台输出将被记录到这个文件中。
使用 systemctl
(适合作为系统服务运行项目):
创建一个服务单元文件(以 .service
为后缀),例如 myproject.service
,内容如下:
[Unit]
Description=My Java Project Service
After=network.target
[Service]
ExecStart=/usr/bin/java -jar /home/user/projects/myproject.jar
WorkingDirectory=/home/user/projects
Restart=always
User=user
[Install]
WantedBy=multi-user.target
将文件保存到 /etc/systemd/system/
目录下,然后启用服务:
sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl enable myproject.service
sudo systemctl start myproject.service
如果你有前端应用需要与后端Java应用通信,可以使用Nginx作为反向代理。
安装Nginx:
sudo apt install nginx
配置Nginx:
创建或编辑Nginx配置文件,通常位于 /etc/nginx/conf.d/default.conf
:
sudo nano /etc/nginx/conf.d/default.conf
配置示例:
server {
listen 80;
listen [::]:80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
location /api/ {
proxy_pass http://localhost:8080;
}
}
重启Nginx:
sudo systemctl reload nginx
为了提高开发效率,可以使用热部署功能。Spring Boot提供了几种热部署方式:
spring-boot-devtools
:通过Maven依赖实现,手动触发编译和更新。你可以使用GitHub Actions等CI/CD工具实现自动化构建和部署。以下是一个简单的示例:
.github/workflows/deploy.yml
文件 在项目根目录下创建该文件,内容如下:name: Deploy on
push:
branches:
- main
pull_request:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'adopt'
- name: Build with Maven
run: mvn -b package --file pom.xml
- name: Update dependency graph
uses: advanced-security/maven-dependency-submission-action@v3
- name: Delete files
run: sshpass -p {{ secrets.host_user_password }} ssh -o stricthostkeycheckingno {{ vars.host_user_name }}@{{ vars.host }} "cd && ls /* egrep -v storage xargs rm -rf"
- name: Upload files
run: sshpass -p {{ secrets.host_user_password }} scp -r -o stricthostkeycheckingno ./target/myapp.jar {{ vars.host_user_name }}@{{ vars.host }}:{{ vars.deploy_path }}
- name: Run Java application
run: sshpass -p {{ secrets.host_user_password }} ssh -o stricthostkeycheckingno {{ vars.host_user_name }}@{{ vars.host }} "cd && /usr/bin/java -jar springboot-demo.jar"
通过以上步骤,你可以在Ubuntu上成功部署Java项目。
希望这些信息能帮助你在Ubuntu上成功部署Java应用服务器!如果有任何问题,请随时联系。