欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Linux系統(tǒng)下Java部署環(huán)境搭建與項(xiàng)目部署超詳細(xì)步驟

 更新時(shí)間:2025年07月04日 09:24:22   作者:·薯?xiàng)l大王  
這篇文章主要給大家介紹了關(guān)于Linux系統(tǒng)下Java部署環(huán)境搭建與項(xiàng)目部署的超詳細(xì)步驟,通過示例講解了JDK和MySQL安裝、項(xiàng)目打包上傳、后臺(tái)啟動(dòng)、防火墻配置及進(jìn)程管理,提供XShell和lrzsz等工具使用方法,需要的朋友可以參考下

1. 軟件環(huán)境準(zhǔn)備

1.1 更新軟件包庫(kù)

在 Ubuntu 上,每次安裝軟件前建議更新系統(tǒng)的軟件包數(shù)據(jù)庫(kù):

sudo apt update

此命令會(huì)從預(yù)設(shè)的軟件源同步最新軟件包的信息。

1.2 安裝 OpenJDK

Java 環(huán)境是運(yùn)行 Java Web 項(xiàng)目的必備條件。

  • 查找 JDK 包版本 執(zhí)行:

    apt list | grep "jdk"
    

    查看有哪些版本的 JDK 可供安裝。

  • 安裝 OpenJDK 17 建議使用較新版本的 OpenJDK,例如:

    sudo apt install openjdk-17-jdk
  • 驗(yàn)證安裝 檢查 Java 版本:

    java -version
    
    openjdk version "17.0.12" ...
    

    表示安裝成功。

1.3 安裝 MySQL 數(shù)據(jù)庫(kù)

數(shù)據(jù)庫(kù)在 Web 項(xiàng)目中通常用于存儲(chǔ)數(shù)據(jù)。

  • 查找 MySQL 包 執(zhí)行:

    apt list | grep "mysql-server"
    
  • 安裝 MySQL 執(zhí)行:

    sudo apt install mysql-server
    

    安裝過程中可能會(huì)提示確認(rèn)下載和安裝,輸入 Y 繼續(xù)。

  • 檢查 MySQL 服務(wù)狀態(tài) 執(zhí)行:

    sudo systemctl status mysql
    

    狀態(tài)應(yīng)顯示“active (running)”。

  • 進(jìn)行 MySQL 安全設(shè)置 為了增強(qiáng)安全性,請(qǐng)運(yùn)行:

    sudo mysql_secure_installation
    

    根據(jù)提示操作:

    • 是否設(shè)置驗(yàn)證組件:建議輸入 Y 并選擇密碼強(qiáng)度(例如 2 - STRONG);

    • 刪除匿名用戶、禁止 root 遠(yuǎn)程登錄和移除 test 數(shù)據(jù)庫(kù)等,全部按照提示選擇 Y 確認(rèn)即可。

2. 部署 Web 項(xiàng)目到 Linux

2.1 數(shù)據(jù)準(zhǔn)備和配置

  • 數(shù)據(jù)庫(kù)建表

    • 根據(jù)提供或自定義的建表 SQL 腳本,在 MySQL 中創(chuàng)建數(shù)據(jù)庫(kù)及表結(jié)構(gòu)。

    • 登錄 MySQL:

      sudo mysql -u root -p
      

      然后執(zhí)行 SQL 腳本創(chuàng)建數(shù)據(jù)庫(kù)。

  • 環(huán)境配置文件修改

    • 在 Spring Boot 項(xiàng)目中,根據(jù)不同環(huán)境編寫配置文件:例如 application-dev.yml 與 application-prod.yml。

    • 在測(cè)試環(huán)境里使用開發(fā)配置,在生產(chǎn)環(huán)境中改為正式數(shù)據(jù)庫(kù)連接。

    • 主配置文件 application.yml 中指定當(dāng)前使用的 profile:

      spring:
        profiles:
          active: prod
      

2.2 Maven 打包項(xiàng)目

  • 在本地環(huán)境中 進(jìn)入項(xiàng)目根目錄,執(zhí)行:

    mvn clean package
    

    如果測(cè)試用例因環(huán)境依賴而失敗,可以使用:

    mvn clean package -DskipTests
    
  • 打包結(jié)果 Maven 執(zhí)行完成后,會(huì)在 target/ 目錄下生成一個(gè)可執(zhí)行的 jar 包(如 blog-spring-0.0.1-SNAPSHOT.jar)。

2.3 上傳 Jar 包至云服務(wù)器

  • 使用 XShell 拖拽上傳

    打開 XShell 后,直接將 jar 包從文件管理器拖動(dòng)至 XShell 窗口,即可完成文件上傳。
  • 使用 lrzsz 上傳工具(備用方案)

    • 安裝 lrzsz:

      sudo apt-get install lrzsz
      
    • 在 XShell 中執(zhí)行上傳命令:

      • 上傳命令(在終端中輸入):

        sz blog-spring-0.0.1-SNAPSHOT.jar
        
      • 彈出對(duì)話框選擇要上傳的文件,上傳完成后,可在當(dāng)前目錄下看到 jar 文件。

2.4 啟動(dòng)應(yīng)用程序

  • 在云服務(wù)器中進(jìn)入 jar 文件所在目錄 使用 cd 命令定位到上傳文件的目錄(例如:cd ~/java)。

  • 后臺(tái)啟動(dòng)應(yīng)用 使用 nohup 命令使程序在后臺(tái)運(yùn)行,并將輸出重定向到日志文件中,這樣即使退出終端程序也不會(huì)停止運(yùn)行:

    bash

    nohup java -jar blog-spring-0.0.1-SNAPSHOT.jar > app.log 2>&1 &
    
    • nohup:使命令在退出終端后繼續(xù)運(yùn)行

    • > app.log 2>&1:將標(biāo)準(zhǔn)輸出和錯(cuò)誤輸出保存到 app.log 文件

    • &:使命令在后臺(tái)執(zhí)行

  • 驗(yàn)證程序運(yùn)行情況

    • 使用命令查看運(yùn)行的進(jìn)程:

      ps -ef | grep java
      
    • 查看日志文件,確認(rèn)啟動(dòng)完成:

      tail -f app.log
      

2.5 配置防火墻與端口開放

  • 確認(rèn)應(yīng)用端口 假設(shè)應(yīng)用監(jiān)聽 8080 端口,則需要確保云服務(wù)器安全組或防火墻允許外部訪問該端口。

  • 在云服務(wù)器管理控制臺(tái)

    • 登錄云服務(wù)商(如騰訊云、阿里云)管理后臺(tái),進(jìn)入防火墻或安全組設(shè)置。

    • 添加相應(yīng)規(guī)則:

      • 協(xié)議:TCP

      • 端口號(hào):8080

      • 來源:建議設(shè)置為 0.0.0.0/0(所有 IP)或根據(jù)實(shí)際需要限制 IP 范圍

2.6 訪問與驗(yàn)證項(xiàng)目

  • 在瀏覽器中訪問 輸入 URL:

    http://[外網(wǎng)IP]:8080/blog_login.html
    

    (將 [外網(wǎng)IP] 替換為云服務(wù)器實(shí)際 IP,8080 替換為實(shí)際應(yīng)用監(jiān)聽端口)

  • 功能驗(yàn)證

    • 檢查登錄、注冊(cè)、博客列表展示、新增博客等功能是否正常

    • 如遇錯(cuò)誤,回到云服務(wù)器查看日志文件進(jìn)行問題排查

2.7 進(jìn)程管理與問題排查

  • 查看當(dāng)前 Java 進(jìn)程

    ps -ef | grep java
    
  • 停止舊進(jìn)程 若需重啟服務(wù),先使用 kill 命令結(jié)束當(dāng)前進(jìn)程(假設(shè) PID 為 12345):

    kill -9 12345
    
  • 常見問題檢查

    • 數(shù)據(jù)庫(kù)連接密碼錯(cuò)誤、MySQL 大小寫問題

    • JDK 版本不匹配,檢查 java -version

    • 防火墻端口未開放,重新檢查云服務(wù)安全配置

總結(jié)

以上內(nèi)容詳細(xì)介紹了從 Linux 基本使用到 Java Web 項(xiàng)目部署的全過程。簡(jiǎn)單回顧主要步驟:

  • 環(huán)境搭建

    選擇并購(gòu)買云服務(wù)器,獲取外網(wǎng) IP、管理員賬號(hào)和密碼使用 XShell 等工具通過 SSH 連接到 Linux 服務(wù)器
  • Linux 基本命令學(xué)習(xí)

    掌握文件管理、目錄切換、文本編輯等基礎(chǔ)操作
  • 安裝運(yùn)行環(huán)境

    使用 apt 更新軟件包,安裝 OpenJDK 和 MySQL并且完成 MySQL 安全設(shè)置,確保數(shù)據(jù)庫(kù)安全
  • 項(xiàng)目打包與上傳

    在本地使用 Maven 打包生成 jar 包,通過 XShell 或 lrzsz 上傳文件
  • 后臺(tái)運(yùn)行及驗(yàn)證

    利用 nohup 后臺(tái)啟動(dòng) jar,開放必要端口,測(cè)試訪問效果
  • 排查與進(jìn)程管理

    檢查進(jìn)程、日志,使用 kill 命令重啟服務(wù)

這份指南可以作為實(shí)際操作時(shí)的參考文檔,幫助你理清從環(huán)境搭建、軟件安裝到項(xiàng)目上線的每一步細(xì)節(jié)。對(duì)部署流程有疑問或需要進(jìn)一步了解自動(dòng)化部署工具(如 Jenkins、Docker 等),都可以在此基礎(chǔ)上進(jìn)行進(jìn)一步探索和實(shí)踐。

到此這篇關(guān)于Linux系統(tǒng)下Java部署環(huán)境搭建與項(xiàng)目部署的文章就介紹到這了,更多相關(guān)Linux Java部署環(huán)境搭建與項(xiàng)目?jī)?nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java中forward轉(zhuǎn)發(fā)與redirect重定向的區(qū)別

    Java中forward轉(zhuǎn)發(fā)與redirect重定向的區(qū)別

    轉(zhuǎn)發(fā)和重定向都是常用的頁(yè)面跳轉(zhuǎn)方式,但在實(shí)現(xiàn)上有一些區(qū)別,本文主要介紹了Java中forward轉(zhuǎn)發(fā)與redirect重定向的區(qū)別,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-11-11
  • Java實(shí)現(xiàn)快速排序算法可視化的示例代碼

    Java實(shí)現(xiàn)快速排序算法可視化的示例代碼

    快速排序算法通過多次比較和交換來實(shí)現(xiàn)排序,是對(duì)冒泡排序算法的一種改進(jìn)。本文將用Java語(yǔ)言實(shí)現(xiàn)快速排序算法并進(jìn)行可視化,感興趣的可以了解一下
    2022-08-08
  • 導(dǎo)入maven項(xiàng)目各個(gè)注解均報(bào)錯(cuò)的解決方案

    導(dǎo)入maven項(xiàng)目各個(gè)注解均報(bào)錯(cuò)的解決方案

    這篇文章主要介紹了導(dǎo)入maven項(xiàng)目各個(gè)注解均報(bào)錯(cuò)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • protobuf與json轉(zhuǎn)換小結(jié)

    protobuf與json轉(zhuǎn)換小結(jié)

    protobuf對(duì)象不能直接使用jsonlib去轉(zhuǎn),因?yàn)閜rotobuf生成的對(duì)象的get方法返回的類型有byte[],而只有String類型可以作為json的key,protobuf提供方法進(jìn)行轉(zhuǎn)換
    2017-07-07
  • JavaScript實(shí)現(xiàn)貪吃蛇游戲

    JavaScript實(shí)現(xiàn)貪吃蛇游戲

    這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)貪吃蛇游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • Mybatis?一級(jí)緩存和二級(jí)緩存原理區(qū)別

    Mybatis?一級(jí)緩存和二級(jí)緩存原理區(qū)別

    這篇文章主要介紹了Mybatis?一級(jí)緩存和二級(jí)緩存原理區(qū)別?,文章通過圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09
  • Java數(shù)據(jù)結(jié)構(gòu)之Map與Set專篇講解

    Java數(shù)據(jù)結(jié)構(gòu)之Map與Set專篇講解

    這篇文章通過實(shí)例面試題目來講解Java中Map和Set之間的關(guān)系,具有很好的參考價(jià)值,Map與Set在面試中經(jīng)常會(huì)遇到。一起跟隨小編過來看看吧
    2022-01-01
  • vue+springboot上傳文件、圖片、視頻及回顯到前端詳解

    vue+springboot上傳文件、圖片、視頻及回顯到前端詳解

    一般來說vue可以使用axios或者fetch等ajax庫(kù)發(fā)送文件請(qǐng)求,而springboot則可以使用Spring MVC的方式來處理上傳文件請(qǐng)求,下面這篇文章主要給大家介紹了關(guān)于vue+springboot上傳文件、圖片、視頻及回顯到前端的相關(guān)資料,需要的朋友可以參考下
    2023-04-04
  • java實(shí)現(xiàn)Fibonacci算法實(shí)例

    java實(shí)現(xiàn)Fibonacci算法實(shí)例

    這篇文章主要介紹了java實(shí)現(xiàn)Fibonacci算法的方法,以實(shí)例形式較為詳細(xì)的分析了java實(shí)現(xiàn)Fibonacci算法的原理與相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-09-09
  • Java并發(fā)編程(CyclicBarrier)實(shí)例詳解

    Java并發(fā)編程(CyclicBarrier)實(shí)例詳解

    這篇文章主要介紹了Java并發(fā)編程(CyclicBarrier)實(shí)例詳解的相關(guān)資料,JAVA編寫并發(fā)程序的時(shí)候,我們需要仔細(xì)去思考一下并發(fā)流程的控制,如何讓各個(gè)線程之間協(xié)作完成某項(xiàng)工作。
    2017-07-07

最新評(píng)論