JVM 配置参数 -D,-X,-XX 的区别

createh54个月前 (12-17)技术教程48

最近在安全护网行动,需要针对服务进行不断的安全加固,如 对服务的 log4j 的安全配置进行防护,对 fastjson 的漏洞进行安全加固等,最快的防护方法就是通过在服务启动的时候,设置对应的安全参数。如开启 fastjson 的安全模式,在启动服务的jvm 参数中添加以下配置;

-Dfastjson.parser.safeMode=true

配置之后总结一下JVM 的常用的三种方式: -D,-X,-XX

-XX 标准选择(Standard Options)

-XX 是 JVM 的所有实现都支持的最常用的选项。-XX 参数被称为不稳定参数,是因为这类参数的设置会引起JVM运行时性能上的差异,配置得当可以提高JVM性能,配置不当会使JVM出现各种问题,甚至JVM崩溃。

示例:

# 例如以-XX开头的配置参数
-XX:+UseConcMarkSweepGC
-XX:+CMSParallelRemarkEnable
-XX:+UseFastAccessorMethods

-X 非标准选择(Non-Standard Options)这些选项是特定于 Java HotSpot 虚拟机的通用选项。

# 例如以-X开头的配置参数
-Xmx256m
-Xms256m
-Xmn768m
-Xss256k

-D 设置系统属性值;

-D属性名称=属性值,-D 可以设置服务jar 包中内部封装的属性值,如server.port等等,其中设置fastjson 的安全模式以及log4j的安全配置都是通过 -D 的方式进行设置

# 例如以-D开头的配置参数
-Dspring.profiles.active=release
-Dspring.config.location=/opt/app/conf/

oracle 官网配置说明:https://docs.oracle.com/javase/8/docs/technotes/tools/windows/java.html

相关文章

java面试题|JVM调优常用JVM参数代码实例简介

JVM(Java Virtual Machine)启动参数用于配置Java应用程序的运行时环境,包括内存管理、垃圾回收(GC)算法、性能调优和日志记录等。# JVM启动参数,不换行格式 # 设置堆内...

Java面试常见问题:JVM内存异常及内存参数设置

前文《Java面试必考问题:JVM内存区域如何划分? 》介绍了Java虚拟机的内存区域划分。内存异常问题是程序开发过程中经常遇到的问题,也是面试中常问到的,本文重点介绍一下JVM的内存异常以及相关的内...

Nginx 转发时的一个坑,运维居然让我背锅

最近遇到一个 Nginx 转发的坑,一个请求转发到 Tomcat 时发现有几个 http header 始终获取不到,导致线上出现 bug,运维说不是他的问题,这个锅我背了。新增的几个 header...

Linux后台运行Jar包以及Jvm参数调优案例

我们将编写的应用程序打包为Jar可执行文件后,如果在Linux服务器环境下,可直接使用java -jar xxx.jar命令运行应用程序,不过当我们关闭命令窗口后启动中的应用程序也会停止,那我们需要通...

Java四种线程池和参数详解 java线程池有几种线程

一、四种线程池Java通过Executors提供四种静态方法来创建线程池例如://创建一个可缓存线程池 ExecutorService cachedThreadPool = Executors.ne...

我终于会写 Java 的定时任务了 我终于会写 java 的定时任务了

前言学过定时任务,但是我忘了,忘得一干二净,害怕,一直听别人说:你写一个定时任务就好了。写个定时任务让他去爬取就行了。我不会,所以现在得补回来了,欠下的终究要还的,/(ㄒoㄒ)/~~定时任务是什么?大...