最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java?Web程序在Linux系統(tǒng)上的部署完整流程

 更新時(shí)間:2025年12月13日 09:45:19   作者:BUG召喚師  
Java?Web項(xiàng)目是基于Java平臺(tái)構(gòu)建的、運(yùn)行在Web服務(wù)器上的應(yīng)用程序,這篇文章主要介紹了Java?Web程序在Linux系統(tǒng)上的部署完整流程,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下

前言

本文介紹了在Linux系統(tǒng)中部署Web項(xiàng)目的完整流程。首先講解了使用apt命令管理軟件包、安裝JDK和MySQL的基本操作;然后詳細(xì)說明了如何通過Maven配置多環(huán)境參數(shù)、打包項(xiàng)目并上傳到服務(wù)器;最后介紹了后臺(tái)運(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í)測(cè)試相關(guān)的操作會(huì)失敗,因此可以跳過測(cè)試;

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)行(后臺(tái)運(yùn)行程序);

程序運(yùn)行后,注意一定要開放應(yīng)用程序的端口號(hào);

一切就緒后,使用瀏覽器進(jìn)行訪問,檢查能否訪問成功;

4. 解決端口號(hào)沖突

如果端口號(hào)沖突,先查找到使用這個(gè)端口進(jìn)程;

netstat -anp | grep "8080"

找到使用這個(gè)端口的進(jìn)程,查看這個(gè)進(jìn)程是什么:

ps aux | grep "進(jìn)程號(hào)"

如果這個(gè)進(jìn)程可以不運(yùn)行,可以殺掉進(jìn)程:

kill 進(jìn)程號(hào)

總結(jié)

到此這篇關(guān)于Java Web程序在Linux系統(tǒng)上的部署完整流程的文章就介紹到這了,更多相關(guān)Java Web程序部署Linux系統(tǒng)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • IntelliJIDEA中實(shí)現(xiàn)SpringBoot多實(shí)例運(yùn)行的兩種方式

    IntelliJIDEA中實(shí)現(xiàn)SpringBoot多實(shí)例運(yùn)行的兩種方式

    在微服務(wù)開發(fā)中,經(jīng)常需要同時(shí)啟動(dòng)多個(gè)服務(wù)實(shí)例進(jìn)行測(cè)試或模擬集群環(huán)境,?IntelliJ?IDEA?作為Java開發(fā)者常用工具,提供了靈活的多實(shí)例啟動(dòng)支持,本文將詳細(xì)介紹如何通過修改配置?和批量啟動(dòng)?兩種方式實(shí)現(xiàn)SpringBoot多實(shí)例運(yùn)行,并解決常見問題,需要的朋友可以參考下
    2025-03-03
  • 完整java開發(fā)中JDBC連接數(shù)據(jù)庫代碼和步驟

    完整java開發(fā)中JDBC連接數(shù)據(jù)庫代碼和步驟

    這篇文章主要介紹了完整java開發(fā)中JDBC連接數(shù)據(jù)庫代碼和步驟,需要的朋友可以參考下
    2015-09-09
  • Java OkHttp框架源碼深入解析

    Java OkHttp框架源碼深入解析

    okhttp是一個(gè)第三方類庫,用于android中請(qǐng)求網(wǎng)絡(luò)。這是一個(gè)開源項(xiàng)目,是安卓端最火熱的輕量級(jí)框架,由移動(dòng)支付Square公司貢獻(xiàn)(該公司還貢獻(xiàn)了Picasso和LeakCanary) 。用于替代HttpUrlConnection和Apache HttpClient
    2022-08-08
  • Java Swing中的工具欄(JToolBar)和分割面版(JSplitPane)組件使用案例

    Java Swing中的工具欄(JToolBar)和分割面版(JSplitPane)組件使用案例

    這篇文章主要介紹了Java Swing中的工具欄(JToolBar)和分割面版(JSplitPane)組件使用案例,本文直接給出代碼實(shí)例和效果截圖,需要的朋友可以參考下
    2014-10-10
  • Spring事務(wù)失效場(chǎng)景原理及解決方案

    Spring事務(wù)失效場(chǎng)景原理及解決方案

    這篇文章主要介紹了Spring事務(wù)失效場(chǎng)景原理及解決方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • JavaWeb項(xiàng)目音頻資源播放實(shí)現(xiàn)方法詳解

    JavaWeb項(xiàng)目音頻資源播放實(shí)現(xiàn)方法詳解

    這篇文章主要介紹了JavaWeb項(xiàng)目音頻資源播放實(shí)現(xiàn)方法詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • Java數(shù)據(jù)結(jié)構(gòu)之二叉樹遍歷算法與底層實(shí)現(xiàn)方法剖析

    Java數(shù)據(jù)結(jié)構(gòu)之二叉樹遍歷算法與底層實(shí)現(xiàn)方法剖析

    只有通過大量的練習(xí),才能逐漸熟悉常見的數(shù)據(jù)結(jié)構(gòu)和算法技巧,從而更快地解決問題,這篇文章主要介紹了Java數(shù)據(jù)結(jié)構(gòu)之二叉樹遍歷算法與底層實(shí)現(xiàn)方法的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2026-06-06
  • Java多線程實(shí)現(xiàn)阻塞隊(duì)列的示例代碼

    Java多線程實(shí)現(xiàn)阻塞隊(duì)列的示例代碼

    本文主要介紹了Java多線程實(shí)現(xiàn)阻塞隊(duì)列的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-12-12
  • Java屬性嵌套獲取值的實(shí)現(xiàn)方式

    Java屬性嵌套獲取值的實(shí)現(xiàn)方式

    本文介紹了如何使用MybatisMetaObject類和FieldUtil工具類來簡(jiǎn)化Java類嵌套獲取屬性值的過程,通過這種方式,可以避免逐層檢查和判空操作,直接從實(shí)例對(duì)象中獲取深層嵌套的屬性值,并且在任意一層為空時(shí)自動(dòng)返回null,不會(huì)報(bào)錯(cuò)
    2025-11-11
  • 使用spring aop 統(tǒng)一捕獲異常和寫日志的示例demo

    使用spring aop 統(tǒng)一捕獲異常和寫日志的示例demo

    本文通過一個(gè)小demo給大家介紹spring AOP 實(shí)現(xiàn)的異常捕獲和日志的方法技巧,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2021-08-08

最新評(píng)論

南和县| 新田县| 外汇| 宣汉县| 万全县| 定南县| 钟祥市| 遂溪县| 巴塘县| 普陀区| 防城港市| 禹州市| 馆陶县| 穆棱市| 丹巴县| 行唐县| 溧水县| 赣榆县| 本溪市| 博爱县| 宣城市| 孟州市| 兰考县| 舞阳县| 桂阳县| 瑞金市| 古田县| 弋阳县| 麻栗坡县| 葫芦岛市| 清苑县| 金沙县| 汶上县| 麻城市| 柏乡县| 巩义市| 石泉县| 尖扎县| 崇信县| 博爱县| 定安县|