JVM 配置参数 -D,-X,-XX 的区别
转载请注明出处:
最近在安全护网行动,需要针对服务进行不断的安全加固,如 对服务的 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