[转帖]java -jar 参数说明

java,jar,参数,说明 · 浏览次数 : 0

小编点评

**Java 选项参数类型** * **标准参数 (-)**:所有 JVM 实现都必须实现的功能,且向后兼容。 * **非标准参数 (-X)**:默认 JVM 实现这些参数的功能,但是并不保证所有 JVM 实现都满足。 * **非Stable参数 (-XX)**:此类参数各个 JVM 实现会有所不同,将来可能会随时取消,需要谨慎使用。 **常见选项参数类型** * **-Xms**:设置线程堆大小。 * **-Xmx**:设置线程池大小。 * **-Xss**:设置字符串缓存大小。 * **-Xloggc**:设置 GC 日志文件路径。 * **-XX:+UseGCLogFileRotation**:启用 GC log 文件旋转。 * **-XX:NumberOfGCLogFiles=5**:设置 GC log 文件数量。 * **-XX:GCLogFileSize=20M**:设置 GC log 文件大小。 * **-XX:+PrintGCDetails**:启用 GC detalles输出。 * **-XX:+PrintGCDateStamps**:启用 GC 日期和时间戳输出。 * **-XX:+PrintGCCause**:启用 GC 导致的异常类的详细信息输出。 **示例** ```java java -Xms700m -Xmx1024m -jar app.jar java -jar -Xms5866m -Xmx5866m -Xss256k -Xloggc:/home/work/spring-boot/logs/gc-%t.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=20M -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCCause starter.jar ```

正文

45dddb8d0d534e4914fcadc7bc1f5ebf.png

jvm 选项

Java启动参数共分为三类;

其一是标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容;

其二是非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足,且不保证向后兼容;

其三是非Stable参数(-XX),此类参数各个jvm实现会有所不同,将来可能会随时取消,需要慎重使用;

例:

java -Xms700m -Xmx1024m -jar app.jar

java -jar -Xms5866m -Xmx5866m -Xss256k -Xloggc:/home/work/spring-boot/logs/gc-%t.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=20M -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCCause starter.jar

程序参数

在main 方法中获取到的参数

public static void main(String[] args) { }

java -jar app.jar a b c

java -jar app.jar --server.port=8081 --spring.profiles.active=dev

环境变量

-Dxxxx是java运行参数的语法 作用是配置一些环境变量,具体有哪些参数,参数有什么效果,和你用的实际环境、项目架构都有关 对,让程序知道log_path代表什么,具体程序怎么用,那是程序的事了

System.getProperty(“propertyName”) 比如你的就是System.getProperty(“log_path”)就可以拿到了 java的main函数都具有String[] 参数。这个参数可以通过-d来传递。 log_path这个会被存放在System.getProperty()中, Property 是继承 hashtable的。可以通过System.getProperty(“log_path”)取得。

例:

java -DconfigurePath=hello -jar app.jar

使用System.getProperty(“configurePath”) 就行获取了

spring-boot 环境下的的传参说明

选项参数

非选项参数

系统参数

选项参数

java -jar xxx.jar --server.port=8081

非选项参数

java -jar xxx.jar abc def

系统参数

java -jar -Dserver.port=8081 xxx.jar

选项参数和非选项参数均可以通过ApplicationArguments接口获取,具体获取方法直接在使用参数的类中注入该接口即可。

@Service

public class UserService {

@Resource

private ApplicationArguments arguments;

}

系统参数和选项参数,可以直接通过@Value在类中获取

系统参数可以通过java.lang.System提供的方法获取:

String systemServerPort = System.getProperty(“server.port”);

总的分[系统参数]与[选项参数]:系统的在 app.jar 之前传入,而 选项是放在 app.jar 之后听

文章知识点与官方知识档案匹配,可进一步学习相关知识
Java技能树首页概览97744 人正在系统学习中
阿里P7互联网架构师进阶全套资料
微信名片

与[转帖]java -jar 参数说明相似的内容:

[转帖]java -d 参数(系统属性) 和 环境变量

https://www.cnblogs.com/limeiyang/p/16565920.html 1. -d 参数说明 通过 java -h 查看可知: 注意:-D= : set a system property 设置系统属性。如果value是一个包含空格的字符串,则必须将该字符串括在双引号中。

[转帖]常用JVM虚拟机参数说明

常用JVM虚拟机参数说明 原文地址:https://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.html 非标准选项 参数说明-Xcomp强制JVM虚拟机在方法第一次被调用的时候就进行本地编译。-Xint强制JVM运行在解释模式。在

[转帖]【JVM系列JKD8】参数参考表

JVM是Java底层核心要素,可以说Java生态的东西都是运行在JVM里面的。From:https://docs.oracle.com/javase/8/docs/ JVM参数的含义 JVM参数说明 参数名称含义默认值-Xms初始堆大小物理内存的1/64(<1GB)默认(MinHeapFreeRat

[转帖]JVM 中你不可不知的参数

https://zhuanlan.zhihu.com/p/91757020?utm_id=0 有的同学虽然写了一段时间 Java 了,但是对于 JVM 却不太关注。有的同学说,参数都是团队规定好的,部署的时候也不用我动手,关注它有什么用,而且,JVM 这东西,听上去就感觉很神秘很高深的样子,还是算了

[转帖]JAVA之G1垃圾回收器

https://www.cnblogs.com/boanxin/p/12292331.html 概述 G1 GC,全称Garbage-First Garbage Collector,通过-XX:+UseG1GC参数来启用,作为体验版随着JDK 6u14版本面世,在JDK 7u4版本发行时被正式推出,

[转帖]Java 近期新闻:JEP 更新,GraalVM 贡献给 OpenJDK,JavaOne 重启

https://www.infoq.cn/article/kzzbQg5zgissaCcJlfey JEP 432记录模式(第二预览版)在上周从其 8294078 草案晋升为候选状态。相比 JEP 405 记录模式(预览版),该 JEP 更新了:对通用记录模式类型参数推断的支持、新增对记录模式出现在

[转帖]Java方法的JIT编译

https://www.jianshu.com/p/a6275e239eac Java方法执行一般会利用分层编译,先通过c1解释执行。方法执行编译等级逐渐提升,有机会通过JIT编译为特定平台汇编执行,以此获得最好的性能。 方法执行除了达到一定热度外,是否JIT编译也受到以下两个参数影响: -XX:+

[转帖]Java 类加载器

类的生命周期和加载过程 在Java中数据类型分为基本数据类型和引用数据类型。基本数据类型由虚拟机预先定义,引用数据类型则需要进行类的加载。引用类型,Java 将其细分为四种:类、接口、数组类和泛型参数。由于泛型参数会在编译过程中被擦除,因此 Java 虚拟机实际上只有前三种。在类、接口和数组类中,数

[转帖]linux查看java堆栈信息_linux进程堆栈大小

https://www.cnblogs.com/cloudHui/p/17076184.html 1、查看JAVA进程JVM参数 jinfo -flags pid(进程号)-XX:CICompilerCount=2 最大的并行编译数-XX:InitialHeapSize=16777216 JVM 的

[转帖]jvm一般相关配置OutOfMemoryError关参数配置解释

一般运行java应用都会根据实际情况设置一些jvm相关运行参数 特别是有关内存和oom溢出等参数,方便后续问题定位和解决 如常用的以下配置 nohup java -Xms256m -Xmx24g -Xmn8g -verbose:gc -XX:+PrintGCDateStamps -XX:+Print