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

Spring?Boot項目部署命令java?-jar的各種參數及作用詳解

 更新時間:2025年04月11日 10:20:05   作者:hoho不愛喝酒  
這篇文章主要介紹了Spring?Boot項目部署命令java?-jar的各種參數及作用的相關資料,包括設置內存大小、垃圾回收器、線程棧大小、系統(tǒng)屬性等,還介紹了SpringBoot專用參數,如修改端口、指定配置文件等,需要的朋友可以參考下

前言

在實際生產環(huán)境中,我們經常使用 java -jar 命令來部署 Spring Boot 項目。為了滿足不同場景的需求,可以通過一些常用參數來優(yōu)化運行時行為和性能。本文將全面解析 java -jar 命令的各種參數及其作用,幫助你更好地管理和優(yōu)化 Spring Boot 項目的部署。

一、基礎命令結構

java -jar [選項] 應用程序名.jar

這里的 應用程序名.jar 是你打包好的 Spring Boot 項目 JAR 文件,[選項] 是可選的 JVM 或應用參數。

二、常見的 java 命令參數

以下是一些常見的 java 命令參數及其用途。

1. 設置內存大小

java -Xms512m -Xmx1024m -jar 應用程序名.jar

  • -Xms:設置 JVM 啟動時分配的最小堆內存大小。例如 -Xms512m 表示最小內存為 512MB
  • -Xmx:設置 JVM 可使用的最大堆內存大小。例如 -Xmx1024m 表示最大內存為 1024MB

2. 配置垃圾回收器

java -XX:+UseG1GC -jar 應用程序名.jar

  • -XX:+UseG1GC:使用 G1 垃圾回收器,適用于需要低延遲的場景。
  • 其他選項:
    • -XX:+UseParallelGC:使用并行垃圾回收器,適合高吞吐量的場景。
    • -XX:+UseConcMarkSweepGC:使用 CMS(Concurrent Mark-Sweep)垃圾回收器,適合響應時間要求高的場景。

3. 配置線程棧大小

java -Xss512k -jar 應用程序名.jar

  • -Xss:設置每個線程的棧大小。默認值通常為 1MB,設置較小的值可以支持更多線程,但可能增加棧溢出的風險。

4. 設置系統(tǒng)屬性

java -Dserver.port=8081 -Dspring.profiles.active=prod -jar 應用程序名.jar

  • -Dkey=value:設置系統(tǒng)屬性。例如:
    • server.port:修改 Spring Boot 應用的默認端口。
    • spring.profiles.active:指定運行的配置文件(如 prod 表示生產環(huán)境)。

5. 生成 GC 日志

java -Xlog:gc*:file=gc.log:time,uptime,level -jar 應用程序名.jar

  • -Xlog:gc*:開啟 GC 日志記錄。
  • file=gc.log:將日志輸出到指定文件。
  • time,uptime,level:記錄時間戳、運行時間和日志級別等信息。

6. 遠程調試

java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005 -jar 應用程序名.jar

  • -agentlib:jdwp:啟用 Java 調試協(xié)議(JDWP)。
  • transport=dt_socket:使用套接字進行通信。
  • server=y:啟用調試服務器。
  • suspend=n:應用程序啟動后不暫停。
  • address=*:5005:監(jiān)聽調試端口 5005。

三、Spring Boot 專用參數

Spring Boot 提供了一些特殊的運行參數,可以通過 --參數名=值 的形式傳遞。

1. 修改端口

java -jar 應用程序名.jar --server.port=8081

  • --server.port:修改 Spring Boot 默認運行端口。

2. 指定配置文件

java -jar 應用程序名.jar --spring.config.location=/path/to/application.properties

  • --spring.config.location:指定外部配置文件路徑。

3. 激活某個 Profile

java -jar 應用程序名.jar --spring.profiles.active=dev

  • --spring.profiles.active:激活指定的配置文件(如 dev 表示開發(fā)環(huán)境)。

4. 配置日志文件路徑

java -jar 應用程序名.jar --logging.file.name=/path/to/logfile.log

  • --logging.file.name:指定日志文件位置。
  • --logging.level.root=DEBUG:設置全局日志級別。

5. 配置隨機端口

java -jar 應用程序名.jar --server.port=0

  • --server.port=0:讓應用隨機選擇一個可用端口運行。

四、綜合示例

以下是一個綜合示例,展示如何結合多種參數運行 Spring Boot 應用程序:

java -Xms512m -Xmx1024m -XX:+UseG1GC
-Dserver.port=8081 -Dspring.profiles.active=prod
-Xlog:gc*:file=gc.log:time,uptime,level
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005
-jar 應用程序名.jar --spring.config.location=/config/application.properties

五、參數優(yōu)化建議

1、根據硬件資源設置內存大小:

  • 小型應用:-Xms256m -Xmx512m

  • 中型應用:-Xms512m -Xmx1024m

  • 大型應用:-Xms1g -Xmx2g

2、選擇合適的垃圾回收器:

  • 響應時間優(yōu)先:使用 G1 垃圾回收器。

  • 吞吐量優(yōu)先:使用 Parallel 垃圾回收器。

3、為生產環(huán)境啟用遠程調試:

但需注意安全性,避免調試端口暴露。

4、外置配置文件:

將敏感配置(如數據庫連接信息)外置,避免硬編碼到應用中。

總結

通過合理使用 java -jar 命令的各種參數,可以有效提高 Spring Boot 項目的運行效率和可維護性。在實際使用時,需根據具體場景進行調整,選擇最適合的配置。

相關文章

  • SpringBoot中注冊過濾器的幾種實現方式

    SpringBoot中注冊過濾器的幾種實現方式

    本文主要介紹了SpringBoot中注冊過濾器的幾種實現方式,主要介紹了三種方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-01-01
  • lombok注解介紹小結

    lombok注解介紹小結

    lombok是一個可以幫助我們簡化java代碼編寫的工具類,這篇文章主要介紹了lombok注解介紹小結,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-11-11
  • JavaSE實戰(zhàn)之酒店訂房系統(tǒng)的實現

    JavaSE實戰(zhàn)之酒店訂房系統(tǒng)的實現

    這篇文章主要為大家詳細介紹了如何利用JavaSE實現酒店訂房系統(tǒng),文中的示例代碼講解詳細,對我們學習JavaSE開發(fā)有一定的幫助,需要的可以參考一下
    2022-07-07
  • Java多線程volatile原理及用法解析

    Java多線程volatile原理及用法解析

    這篇文章主要介紹了Java多線程volatile原理及用法解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-07-07
  • 解析Java中的默認方法

    解析Java中的默認方法

    這篇文章主要介紹了Java中的默認方法,包括繼承和調用等Java入門學習中的基礎知識,需要的朋友可以參考下
    2015-07-07
  • Java中BigDecimal類與int、Integer使用總結

    Java中BigDecimal類與int、Integer使用總結

    這篇文章主要給大家介紹了關于Java中BigDecimal類與int、Integer使用的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Java具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-07-07
  • Java 添加和刪除PDF圖層的示例代碼

    Java 添加和刪除PDF圖層的示例代碼

    本文將介紹如何使用Spire.PDF for Java來添加和刪除PDF圖層,本文通過示例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友參考下吧
    2020-02-02
  • Java抽獎算法第二例

    Java抽獎算法第二例

    這篇文章主要為大家詳細介紹了Java抽獎算法,根據概率將獎品劃分區(qū)間,每個區(qū)間代表一個獎品,然后抽取隨機數,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-08-08
  • 解決java.lang.IllegalStateException:Duplicate key異常問題

    解決java.lang.IllegalStateException:Duplicate key異常問題

    java.lang.IllegalStateException:Duplicatekey異常在將List轉換為Map時出現,解決方法是使用toMap()的重載方法,如果已經存在則不再修改,直接使用上一個數據
    2025-03-03
  • Java字符串split方法的坑及解決

    Java字符串split方法的坑及解決

    這篇文章主要介紹了Java字符串split方法的坑及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12

最新評論