【Java】 java -jar 命令 传递系统参数 与 main函数参数 顺序

tech2022-11-25  103

package com.liyao.runner; /** * 用法: java [-options] class [args...] * (执行类) * 或 java [-options] -jar jarfile [args...] * (执行 jar 文件) * 可以看到,jvm参数和程序参数的传参位置是不同的,jvm参数常见的是一些系统变量,会通过-D参数指定,这类型参数是[-options]里的,需要放在执行的主类名或者jar包之前,main函数参数放在最后,也就是主类名或者jar包后面 * 如果参数位置不对,则会导致程序内部获取不到参数,比如把-D类型的参数放到了最后,那么-D整体会被当做main函数的参数,而不是系统参数,具体可以输入java -jar,看下手册 */ public class MyRunner { /** * case1: * java -DmyEnv=haha -cp ./: com.liyao.runner.MyRunner abc * envVar: haha * arg1: abc * * case2: * java -cp ./: com.liyao.runner.MyRunner -DmyEnv=haha abc * envVar: null * arg1: -DmyEnv=haha * 获取不到系统参数,系统参数被当做main函数参数传入了 */ public static void main(String[] args) { String envVar = System.getProperty("myEnv"); System.out.println("envVar: " + envVar); if (args.length > 0) { String arg1 = args[0]; System.out.println("arg1: " + arg1); } } /** 用法: java [-options] class [args...] (执行类) 或 java [-options] -jar jarfile [args...] (执行 jar 文件) 其中选项包括: -d32 使用 32 位数据模型 (如果可用) -d64 使用 64 位数据模型 (如果可用) -server 选择 "server" VM 默认 VM 是 server, 因为您是在服务器类计算机上运行。 -cp <目录和 zip/jar 文件的类搜索路径> -classpath <目录和 zip/jar 文件的类搜索路径> 用 : 分隔的目录, JAR 档案 和 ZIP 档案列表, 用于搜索类文件。 -D<名称>=<值> 设置系统属性 -verbose:[class|gc|jni] 启用详细输出 -version 输出产品版本并退出 -version:<值> 警告: 此功能已过时, 将在 未来发行版中删除。 需要指定的版本才能运行 -showversion 输出产品版本并继续 -jre-restrict-search | -no-jre-restrict-search 警告: 此功能已过时, 将在 未来发行版中删除。 在版本搜索中包括/排除用户专用 JRE -? -help 输出此帮助消息 -X 输出非标准选项的帮助 -ea[:<packagename>...|:<classname>] -enableassertions[:<packagename>...|:<classname>] 按指定的粒度启用断言 -da[:<packagename>...|:<classname>] -disableassertions[:<packagename>...|:<classname>] 禁用具有指定粒度的断言 -esa | -enablesystemassertions 启用系统断言 -dsa | -disablesystemassertions 禁用系统断言 -agentlib:<libname>[=<选项>] 加载本机代理库 <libname>, 例如 -agentlib:hprof 另请参阅 -agentlib:jdwp=help 和 -agentlib:hprof=help -agentpath:<pathname>[=<选项>] 按完整路径名加载本机代理库 -javaagent:<jarpath>[=<选项>] 加载 Java 编程语言代理, 请参阅 java.lang.instrument -splash:<imagepath> 使用指定的图像显示启动屏幕 有关详细信息, 请参阅 http://www.oracle.com/technetwork/java/javase/documentation/index.html。 */ }

 

最新回复(0)