Spring Boot项目部署命令java -jar的各种参数及作用详解

2025-04-11 16:50

本文主要是介绍Spring Boot项目部署命令java -jar的各种参数及作用详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

《SpringBoot项目部署命令java-jar的各种参数及作用详解》:本文主要介绍SpringBoot项目部署命令java-jar的各种参数及作用的相关资料,包括设置内存大小、垃圾回收...

前言

在实际生产环境中,我们经常使用 java -jar 命令来部署 Spring Boot 项目。为了满足不同场景的需求,可以通过一些常用参数来优化运行时行为和性能。本文将全面解析 java -jar 命令的各种参数及其作用,帮助你更好地管理和优化 Spring Boot 项目的部署。

一、基础命令结构

java -jar [选项] 应用程序名.jar

这里的 应用程序名.jar 是你打包好的 Spring Boot 项目 JAR 文件,[选项] 是可选的 JVM 或应用参数。

二、常见的 java 命令参数

以下是一些常见的 java 命令参数及其用途。

1. 设置内存大小

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

  • -Xms:设置 JVM 启动时分配的最小堆内存大小。例如 -Xms512m 表示最小内存为 512MB
  • -Xmx:设置 JVandroidM 可使用的最大堆内存大小。例如 -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. 设置系统属性

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

  • -Dkey=value:设置系统属性。例如:
    • server.port:修改 Spring Boot 应用的默认端口。
    • spring.profiles.active:指定运js行的配置文件(如 prod 表示生产环境)。

5. 生成 GC 日志

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

  • -Xandroidlog: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 调试协议(JDWP)。
  • transport=dt_socket:使用套接字进行通信。
  • server=y:启用调试服务器
  • suspend=n:应用程序启动后不暂停。
  • address=*:5005:监听调试端口 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 表示开发环境)。

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:让应用随机选择一js个可用端口运行。

四、综合示例

以下是一个综合示例,展示如何结合多种参数运行 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

五、参数优化建议

1、根据硬件资源设置内存大小:

  • 小型应用:-Xms256m -Xmx512m

  • 中型应用:-Xms512m -Xmx1024m

  • 大型应用:-Xms1g -Xmx2g

2、选择合适的垃圾回收器:

  • 响应时间优先:使用 G1 垃圾回收器。

  • 吞吐量优先:使用 Parallel 垃圾回收器。

3、为生产环境启用远程调试http://www.chinasem.cn

但需注意安全性,避免调试端口暴露。

4、外置配置文件:

将敏感配置(如数据库连接信息)外置,避免硬编码到应用中。

总结

通过合理使用 java -jar 命令的各种参数,可以有效提高 Spring Boot 项目的运行效率和可维护性。在实际使用时,需根据具体场景进行调整,选择最适合的配置。

这篇关于Spring Boot项目部署命令java -jar的各种参数及作用详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1154182

相关文章

HTML5 搜索框Search Box详解

《HTML5搜索框SearchBox详解》HTML5的搜索框是一个强大的工具,能够有效提升用户体验,通过结合自动补全功能和适当的样式,可以创建出既美观又实用的搜索界面,这篇文章给大家介绍HTML5... html5 搜索框(Search Box)详解搜索框是一个用于输入查询内容的控件,通常用于网站或应用程

Java对异常的认识与异常的处理小结

《Java对异常的认识与异常的处理小结》Java程序在运行时可能出现的错误或非正常情况称为异常,下面给大家介绍Java对异常的认识与异常的处理,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参... 目录一、认识异常与异常类型。二、异常的处理三、总结 一、认识异常与异常类型。(1)简单定义-什么是

SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志

《SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志》在SpringBoot项目中,使用logback-spring.xml配置屏蔽特定路径的日志有两种常用方式,文中的... 目录方案一:基础配置(直接关闭目标路径日志)方案二:结合 Spring Profile 按环境屏蔽关

基于Python实现一个Windows Tree命令工具

《基于Python实现一个WindowsTree命令工具》今天想要在Windows平台的CMD命令终端窗口中使用像Linux下的tree命令,打印一下目录结构层级树,然而还真有tree命令,但是发现... 目录引言实现代码使用说明可用选项示例用法功能特点添加到环境变量方法一:创建批处理文件并添加到PATH1

Java使用HttpClient实现图片下载与本地保存功能

《Java使用HttpClient实现图片下载与本地保存功能》在当今数字化时代,网络资源的获取与处理已成为软件开发中的常见需求,其中,图片作为网络上最常见的资源之一,其下载与保存功能在许多应用场景中都... 目录引言一、Apache HttpClient简介二、技术栈与环境准备三、实现图片下载与保存功能1.

Python中使用uv创建环境及原理举例详解

《Python中使用uv创建环境及原理举例详解》uv是Astral团队开发的高性能Python工具,整合包管理、虚拟环境、Python版本控制等功能,:本文主要介绍Python中使用uv创建环境及... 目录一、uv工具简介核心特点:二、安装uv1. 通过pip安装2. 通过脚本安装验证安装:配置镜像源(可

C++ 函数 strftime 和时间格式示例详解

《C++函数strftime和时间格式示例详解》strftime是C/C++标准库中用于格式化日期和时间的函数,定义在ctime头文件中,它将tm结构体中的时间信息转换为指定格式的字符串,是处理... 目录C++ 函数 strftipythonme 详解一、函数原型二、功能描述三、格式字符串说明四、返回值五

LiteFlow轻量级工作流引擎使用示例详解

《LiteFlow轻量级工作流引擎使用示例详解》:本文主要介绍LiteFlow是一个灵活、简洁且轻量的工作流引擎,适合用于中小型项目和微服务架构中的流程编排,本文给大家介绍LiteFlow轻量级工... 目录1. LiteFlow 主要特点2. 工作流定义方式3. LiteFlow 流程示例4. LiteF

SpringBoot排查和解决JSON解析错误(400 Bad Request)的方法

《SpringBoot排查和解决JSON解析错误(400BadRequest)的方法》在开发SpringBootRESTfulAPI时,客户端与服务端的数据交互通常使用JSON格式,然而,JSON... 目录问题背景1. 问题描述2. 错误分析解决方案1. 手动重新输入jsON2. 使用工具清理JSON3.

CSS3中的字体及相关属性详解

《CSS3中的字体及相关属性详解》:本文主要介绍了CSS3中的字体及相关属性,详细内容请阅读本文,希望能对你有所帮助... 字体网页字体的三个来源:用户机器上安装的字体,放心使用。保存在第三方网站上的字体,例如Typekit和Google,可以link标签链接到你的页面上。保存在你自己Web服务器上的字