Java?Web程序在Linux系統(tǒng)上的部署完整流程
前言
本文介紹了在Linux系統(tǒng)中部署Web項(xiàng)目的完整流程。首先講解了使用apt命令管理軟件包、安裝JDK和MySQL的基本操作;然后詳細(xì)說明了如何通過Maven配置多環(huán)境參數(shù)、打包項(xiàng)目并上傳到服務(wù)器;最后介紹了后臺運(yùn)行程序、處理端口沖突的方法。整個(gè)部署過程涵蓋了從基礎(chǔ)環(huán)境搭建到項(xiàng)目上線的關(guān)鍵步驟,為開發(fā)者提供了實(shí)用的Linux部署指導(dǎo)。
一、搭建部署環(huán)境
使用 apt 在 Linux 環(huán)境中安裝,更新,刪除和管理軟件包;
1. apt 的常用命令
# 列出所有軟件包 apt list # 更新軟件包數(shù)據(jù)庫 apt-get update # 安裝軟件包 apt install package_name # 移除軟件包 apt remove package_name apt purge package_name
2. 安裝 JDK
安裝軟件前,先更新包管理器中的軟件資源:
apt-get updtae
查找及安裝 JDK:
# 查找 jdk apt list | grep "jdk" # 安裝 jdk apt install openjdk-17-jdk # 查看 jdk 版本 java -version
3. 安裝 mysql
# 查找安裝包 apt list | grep "mysql-server" # 安裝 mysql apt install mysql-server # 查看 mysql 狀態(tài) systemctl status mysql
二、部署 Web 項(xiàng)目到 Linux
1. 環(huán)境配置
為了避免在開發(fā)環(huán)境中和生產(chǎn)環(huán)境中切換時(shí),頻繁的修改程序,因此配置文件通常寫兩個(gè),程序打包時(shí),選擇使用哪個(gè)配置文件即可,避免修改程序;

開發(fā)環(huán)境使用 dev 配置文件,線上環(huán)境使用 prod 配置文件;兩個(gè)文件的格式是相同的,內(nèi)容需要根據(jù)數(shù)據(jù)庫的配置填寫不同的內(nèi)容;
以 dev 為例:
spring:
application:
name: spring-blog
# 數(shù)據(jù)庫配置
datasource:
url: jdbc:mysql://127.0.0.1:3308/java_blog_spring?characterEncoding=utf8&useSSL=false
username: root
password: 123456
driver-class-name: com.mysql.cj.jdbc.Driver
mybatis:
# 配置 mybatis xml 的文件路徑,在 resources/mapper 創(chuàng)建所有表的 xml 文件
mapper-locations: classpath:mapper/**Mapper.xml
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 配置打印 MyBatis日志
map-underscore-to-camel-case: true #配置駝峰自動(dòng)轉(zhuǎn)換
logging:
file:
name: spring-blog.log在 application.yml 中指定使用哪個(gè)配置文件;
spring:
profiles:
active: dev為了防止 application.yml 中的總是需要修改,可以從 Maven 環(huán)境中讀取配置變量:
<profiles> <profile> <id>dev</id> <properties> <profile.name>dev</profile.name> </properties> </profile> <profile> <id>prod</id> <properties> <profile.name>prod</profile.name> </properties> </profile> </profiles>
修改 application.yml:
spring:
profiles:
active: @profile.name@2. 構(gòu)建項(xiàng)目并打包
使用 Maven 進(jìn)行打包:
1. 需要選擇使用哪個(gè)配置文件,勾選好之后,要刷新,重新加載 Maven 配置;

2. 如果是線上環(huán)境,數(shù)據(jù)庫配置和本地環(huán)境不同,打包時(shí)測試相關(guān)的操作會失敗,因此可以跳過測試;

3. 雙擊 package 進(jìn)行打包;
打包完,在指定目錄中找到打包好的軟件包,通常有幾十兆,如果打包過小,只有幾兆,可能是 Maven 中打包插件有問題,沒有打包引入的第三方的代碼;

3. 上傳 jar 包到服務(wù)器
將打好的 jar 包托到服務(wù)器的指定目錄:

拖動(dòng)需要使用 rzsz 命令,如果拖動(dòng)失敗,先安裝 rzsz:
apt-get install lrzsz
成功后運(yùn)行程序:
nohup java -jar blog-spring-0.0.1-SNAPSHOT,jar &
使用 nohup 指令,可以使程序在 shell 窗口關(guān)閉后也能運(yùn)行(后臺運(yùn)行程序);
程序運(yùn)行后,注意一定要開放應(yīng)用程序的端口號;
一切就緒后,使用瀏覽器進(jìn)行訪問,檢查能否訪問成功;
4. 解決端口號沖突
如果端口號沖突,先查找到使用這個(gè)端口進(jìn)程;
netstat -anp | grep "8080"
找到使用這個(gè)端口的進(jìn)程,查看這個(gè)進(jìn)程是什么:
ps aux | grep "進(jìn)程號"
如果這個(gè)進(jìn)程可以不運(yùn)行,可以殺掉進(jìn)程:
kill 進(jìn)程號
總結(jié)
到此這篇關(guān)于Java Web程序在Linux系統(tǒng)上的部署完整流程的文章就介紹到這了,更多相關(guān)Java Web程序部署Linux系統(tǒng)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用WebMvcConfigurer配置SpringMVC過程
WebMvcConfigurer配置類用于Java代碼配置SpringMvc,實(shí)現(xiàn)該接口或繼承WebMvcConfigurationSupport類,常用方法:addInterceptors(攔截器)、addViewControllers(視圖控制器)等2024-12-12
Java中實(shí)現(xiàn)接口與繼承的區(qū)別及說明
這篇文章主要介紹了Java中實(shí)現(xiàn)接口與繼承的區(qū)別及說明,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03
揭秘Spring核心注解@Configuration與@Component的本質(zhì)區(qū)別
在Spring框架中,@Configuration和@Component都是常用的注解,但它們有著本質(zhì)的區(qū)別,本文將深入剖析這兩者的核心區(qū)別,并通過代碼示例展示它們的實(shí)際行為差異2025-07-07
Netty源碼解析NioEventLoop創(chuàng)建的構(gòu)造方法
這篇文章主要介紹了Netty源碼解析NioEventLoopGroup之NioEventLoop創(chuàng)建的構(gòu)造方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-03-03
Quarkus改造Pmml模型項(xiàng)目異常記錄及解決處理
這篇文章主要為大家介紹了Quarkus改造Pmml模型項(xiàng)目是遇到的異常記錄以及解決方法,有需要的同學(xué)可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2022-02-02
java中struts2實(shí)現(xiàn)簡單的文件上傳與下載
這篇文章主要為大家詳細(xì)介紹了java中struts2實(shí)現(xiàn)簡單的文件上傳與下載的相關(guān)資料,感興趣的小伙伴們可以參考一下2016-05-05

