Bootstrap

java -jar 参数_java -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 之后听

;