java -jar

java [JVM参数] -jar [jar文件路径] [应用参数,包括springboot特定参数]*  JVM 参数必须在-jar之前
*  应用参数一般在jar文件路径之后
java -jar excel.jar
java -jar -Dloader.path=libx /path/to/yourApp.jar
java -jar -Dloader.path=libx /path/to/yourApp.jar --server.port=8079
java -Xms512m -Xmx2g -Dlogging.level.root=DEBUG -jar /path/to/yourApp.jar --spring.profiles.active=prod

1. JVM 系统属性

配置JVM或运行在JVM上的应用程序的各种动态设置的,它们可以通过 System.getProperty(“property”) 在Java代码中访问

-Dproperty=value

常见的系统属性

  • 日志相关

    -Djava.util.logging.config.file=path/to/logging.properties:指定日志配置文件的路径。
    -Dlogback.configurationFile=path/to/logback.xml:对于使用Logback的日志框架,指定其配置文件路径。
    -Dlogging.level.root=LEVEL:设置root logger的日志级别(如DEBUG, INFO, WARN, ERROR等)。

  • 资源和类路径

    -Djava.library.path=path:指定本地库(如.dll或.so文件)的搜索路径。
    -Djava.endorsed.dirs=path:指定Javaendorsed标准覆盖目录的路径。
    -Dloader.path=path:在Spring Boot应用中,指定额外的类路径或资源目录。

  • 网络连接

    -Dhttp.proxyHost=proxy.example.com:设置HTTP代理主机。
    -Dhttp.proxyPort=8080:设置HTTP代理端口。
    -Dhttps.proxyHost=proxy.example.com:设置HTTPS代理主机。
    -Dfile.encoding=UTF-8:指定文件编码。

  • 国际化和本土化

2. springboot特定参数

前提: 基于springboot的应用

--spring.*=value

常见:
--spring.profiles.active
--server.port
–spring.config.location
–spring.config.name
--logging.level.root=DEBUG
–spring.datasource.url=jdbc:mysql://localhost/test

–server.port 是Spring Boot为统一配置嵌入式服务器(如Tomcat、Jetty或Undertow)提供的标准化配置属性
如果见到–httpPort,这一般是应用自定义的或者第三方库或框架指定的配置参数
总之,针对springboot 应用,推荐用–server.port来指定http服务端口

-Dlogging.level.root=LEVEL 和 --logging.level.root=DEBUG 都是用来设置应用程序日志级别的方法,前者更通用,不仅限于springboot框架,后者只能用于springboot框架

3. 应用参数

直接在 java -jar 后面跟上参数,无需前缀,这些参数将作为应用程序的命令行参数传递给 main 方法。例如:java -jar myapp.jar param1=value1 param2=value2,这些参数可以通过 public static void main(String[] args) 中的 args 数组访问。

4. JVM启动参数

这些参数直接控制java虚拟机的行为,提供了对JVM更底层或特定于实现的配置能力,直接作用于JVM的启动和运行时行为,例如内存分配、垃圾收集策略、即时编译器设置。
往往以-X或者-XX开头,常常用于jvm调优

  • 堆内存设置
    -Xms: 确定初始堆大小 (-Xms),例如,使用 -Xms128m 表示初始堆大小为128MB
    -Xmx:参数定义了JVM堆内存可增长到的最大值,例如,-Xmx1024m 表示最大堆大小为1GB。

  • 线程栈大小调整:
    -Xss:设置每个线程的栈大小。例如,-Xss256k 将每个线程的栈大小设置为256KB。

  • 年轻代与老年代配置:
    -Xmn:设置年轻代(Young Generation)的总大小。例如,-Xmn1g 将年轻代大小设置为1GB。
    -XX:NewRatio=:设置年轻代与老年代的比例。例如,-XX:NewRatio=3 表示年轻代与老年代的比例为1:3。

  • 垃圾回收器选择:
    -XX:+UseSerialGC:使用串行垃圾回收器。
    -XX:+UseParallelGC:使用并行垃圾回收器。
    -XX:+UseConcMarkSweepGC 或 -XX:+UseG1GC:分别使用CMS垃圾回收器和G1垃圾回收器。

  • 元空间(Metaspace)配置(Java 8及以上版本):
    -XX:MetaspaceSize=:初始的元空间大小。
    -XX:MaxMetaspaceSize=:元空间的最大大小。

  • 性能和监控:
    -XX:CompileThreshold=:指定热点代码被JIT编译的阈值。
    -XX:+PrintGCDetails:打印垃圾回收的详细信息。
    -Xloggc::指定垃圾回收日志的输出文件路径。

  • 线程和并发:
    -XX:ParallelGCThreads=:设置并行垃圾回收时使用的线程数。
    -XX:MaxParallelGCThreads=:设置最大并行垃圾回收线程数。

  • 直接内存限制:
    -XX:MaxDirectMemorySize=:设置可以直接内存的最大大小。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/31322.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Behind the Code:Polkadot 如何实现全球协作与去中心化治理?

2024 年 6 月 16 日,《Behind the Code: Web3 Thinkers》第二季第二集上线。本集中,ChaosDAO 联合创始人兼 Novasama Technologies 首席财务官 Leemo 深入探讨了 Polkadot 生态系统中的全球协作力量,以及这种协作如何推动去中心化治理的创新与…

聊聊语法糖

语法糖(Syntactic sugar)是指编程语言中添加的某种语法,这种语法对语言的功能没有影响,但更方便程序员使用,并能增加程序的可读性,减少代码出错的机会。 历史: 语法糖这一术语是由英国计算机科…

C++:你用过MultiIndex容器吗?

作为C开发者,我们对键值容器非常熟悉,例如std::set、std::map、std::unordered_map等。这些容器以其强大的功能和高效的性能,成为我们处理数据存储和检索任务时的得力助手。但是你用过多键容器(MultiIndex)吗&#xff…

关于团队生存的小讨论

大家好,我是阿赵。   今天出门上班的时候,在电梯里面看到了信乐团的海报,信乐团要来我家附近开演唱会了。可惜,是没有了信的信乐团。   我以前读大学的时候,组建过自己的乐队,所以对当时很多乐队都非常…

在 macOS 上使用 Homebrew 安装和配置 Python 及 Tk 库

在 macOS 上,系统自带的 /usr/bin/python3 版本较旧,且直接升级系统自带的 Python 版本可能会影响系统稳定性。因此,推荐使用 Homebrew 来安装和管理 Python 及其相关库。本文将详细介绍如何通过 Homebrew 安装和配置 Python 3 及 Tk 库&…

CentOS中的rename命令

目录 CentOS中的rename命令基本语法使用示例注意事项安装prename CentOS中的rename命令 在CentOS系统中,rename命令通常是指util-linux包中提供的版本,它用于批量重命名文件,但与Perl版本的rename命令相比,功能较为简单&#xff…

QT 中setVisible()和setEnabled()的区别

setVisible(bool)和setEnabled(true)在PyQt(以及其他类似的图形用户界面框架)中分别用于控制控件的可见性和可用性,它们之间的主要区别如下: setVisible(bool) 功能:这个函数用于设置QWidget控件的可见状态。参数&am…

AI创作在论文写作中扮演什么角色?

近年来,随着科技的快速发展,AI已经逐渐渗透到了生活中的方方面面,其中也包含着学术领域。 作为学生党,你是否还在为期末论文,大学生实践报告而发愁? 有了这些AI写作神器,大学生们再也不用在期…

深度学习500问——Chapter11:迁移学习(3)

文章目录 11.3 迁移学习的常用方法 11.3.1 数据分布自适应 11.3.2 边缘分布自适应 11.3.3 条件分布自适应 11.3.4 联合分布自适应 11.3.5 概率分布自适应方法优劣性比较 11.3.6 特征选择 11.3.7 统计特征对齐方法 11.3 迁移学习的常用方法 11.3.1 数据分布自适应 数据分布自适…

Unity做一个剪辑声音的工具 在编辑器模式实时剪辑声音

Unity音频剪辑工具的实现 在游戏开发中,音频是一个至关重要的元素。音频剪辑工具能够帮助开发者高效地编辑和管理音频文件。本文将解析一个基于Unity编辑器的音频剪辑工具的实现方法 效果 工具功能 该音频剪辑工具允许用户在Unity编辑器中加载音频片段&#xff0…

Linux 一键部署 Nginx1.26.1 + ModSecurity3

前言 ModSecurity 是 Apache 基金会的一个开源、高性能的 Web 应用程序防火墙(WAF),它提供了强大的安全规则引擎,用于检测和阻止各种攻击行为,如 SQL 注入、XSS 跨站点脚本攻击等。而 nginx 是一个高性能的 Web 服务器,常用于处理大量的并发请求,具有很高的负载均衡能力…

k8s及etcd的每日自动备份及故障时的还原脚本

#!/bin/bash# 定义备份目录 BACKUP_DIR"/data/backupdata/k8s" K8S_CONFIG_BACKUP"${BACKUP_DIR}/k8s_config_backup_$(date %Y%m%d%H%M%S).tar.gz" ETCD_BACKUP"${BACKUP_DIR}/etcd_backup_$(date %Y%m%d%H%M%S).db" TEMP_DIR"${BACKUP_DI…

<component>标签的介绍和使用

目录 基本使用: 使用组件对象: 使用动态组件与 keep-alive keep-alive简单介绍及使用: 属性: 生命周期钩子: 举例: 缓存单个组件: 缓存多个组件(通过路由动态)&…

如何修炼个人影响力,怎样有效地影响他人

一、教程描述 影响力是用一种别人所乐于接受的方式,改变他人的思想和行动的能力。影响力又被解释为战略影响、印象管理、善于表现的能力、目标的说服力以及合作促成的影响力等。影响力表明了一种试图支配与统帅他人的倾向,从而才使一个人采取各种劝说、…

iOS封装FrameWork

我们是整个项目封装给客户app用,项目里面有资源文件:xib和图片文件。有第三方,也有.a文件和第三方给我们的frameWork。下面记录下大体遇到的问题及遇到的冲突解决办法。 第一部分:封装frameWork 1.首先准备好,要封装的…

在阿里云服务器Linux系统上从头到尾实现Webapp的部署(安装卸载JDK、安装Tomcat、安装配置MySQL)

输入yum list | grep jdk 选择 devel是软件包中的典型命名格式 devel表示这个包是开发工具相关的 里面包含内容是最完整的 x86表示cpu架构是x86_64 还有openjdk表示开源版本 输入yum install java-1.8.0-openjdk-devel.x86_64 开始下载 遇到问你 is this ok? 输入y表示ok 输…

C#中的枚举类-自定义属性

在实际开发过程中,我们常常会用到枚举类,使用枚举的时候往往有着各种使用条件,如何给枚举加入使用条件呢? 答案就是我们的——自定义属性 废话不多说,上代码 枚举类 首先我们要有一个枚举类 public enum XXXX枚举…

0621# C++八股 1.成员初始化列表的概念?以及为什么使用它会快一点?2.重写Override和重载Overload区别

成员初始化列表的概念?以及为什么使用它会快一点? 成员初始化列表的概念 在C中,成员初始化列表是构造函数的一部分,它用于在构造函数体执行之前初始化类的成员变量。成员初始化列表在构造函数参数列表之后,以冒号 : …

Unity与Android交互通信系列(6)

本节主要讲述广播订阅。 使用AndroidJavaProxy代理接口,我们可以很方便的实现对Android端事件的订阅,灵活的进行Android端与Unity端的代码交互。通过AndroidJavaProxy代理,我们也可以在安卓端使用 BroadcastReceiver 接收广播,然后…

物联网APP设计艺术:技巧与未来科技的融合

从早期的智能家居,到今天的服装制造、医疗保健、物流运输、汽车工业...越来越多的行业开始使用物联网。物联网技术跨度大,适用范围广,设计师在面对物联网产品的UI设计项目时往往会感到受阻。这是什么原因呢?物联网应用程序界面设计…