ubuntu

Ubuntu Java项目部署步骤

小樊
33
2025-07-23 14:50:09
栏目: 编程语言

在Ubuntu上部署Java项目通常涉及以下几个步骤:

一、安装Java运行环境(JRE)或Java开发工具包(JDK)

  1. 检查系统是否已安装Java: 在终端中输入 java -version,如果已经安装,会显示Java的版本信息。如果未安装,则需要进行安装。

  2. 安装OpenJDK(以Ubuntu为例):

    sudo apt update
    sudo apt install openjdk-11-jdk
    
  3. 验证安装: 安装完成后,再次检查Java版本以确认安装成功。

  4. 配置Java环境变量(可选): 编辑 ~/.bashrc/etc/profile 文件,设置 JAVA_HOME 环境变量。

    export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
    export PATH=$JAVA_HOME/bin:$PATH
    

    保存文件后,在终端中运行 source ~/.bashrc 使配置生效。

二、准备Java项目文件

  1. 打包项目(如果是Maven或Gradle项目):

    • Maven项目:在项目根目录下运行 mvn clean package 命令,生成可执行的JAR文件(通常在 target 目录下)。
    • Gradle项目:运行 gradle build 命令来构建项目并生成可执行文件。
  2. 上传项目文件到Linux服务器: 使用 scp 命令将本地的JAR文件上传到Linux服务器。例如:

    scp myproject.jar user@server:/home/user/projects
    

三、运行Java项目

  1. 简单的JAR文件运行方式: 进入JAR文件所在的目录,运行以下命令来启动项目:

    java -jar myproject.jar
    
  2. 后台运行项目(使用 nohupsystemctl):

    • 使用 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作为反向代理。

  1. 安装Nginx

    sudo apt install nginx
    
  2. 配置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;
        }
    }
    
  3. 重启Nginx

    sudo systemctl reload nginx
    

五、热部署(可选)

为了提高开发效率,可以使用热部署功能。Spring Boot提供了几种热部署方式:

六、自动化部署(可选)

你可以使用GitHub Actions等CI/CD工具实现自动化构建和部署。以下是一个简单的示例:

  1. 创建 .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应用服务器!如果有任何问题,请随时联系。

0
看了该问题的人还看了