首页 > 编程语言 >【Java】 java -jar 命令 传递系统参数 与 main函数参数 顺序

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

时间:2022-11-11 16:00:15浏览次数:33  
标签:... java args jar 函数参数 参数 main


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。
*/
}

 

标签:...,java,args,jar,函数参数,参数,main
From: https://blog.51cto.com/u_15873544/5845119

相关文章

  • JAVA四大核心函数式接口
    Consumer接口1.接口说明Consumer接口是消费性接口,无返回值。Java8中对Consumer的定义如下所示。@FunctionalInterfacepublicinterfaceConsumer<T>{voidaccep......
  • 温故而知新——Java双列集合Map&Stream流
    总体目录:01-双列集合的特点02-Map集合常用的APIMap是顶层接口,常用方法如下:size()、isEmpty()、clear()方法容易理解;put()方法的细节:如果第一次添加元素,返回值为null......
  • 基于OpenJDK Alpine制作日常java基础镜像
    Dockerfile内容如下:FROMeclipse-temurin:8-jre-alpineMAINTAINERdevops([email protected])RUNapkupdate&&apk--no-cacheaddtzdatattf-dejavufontconfig......
  • java 填充word文件
    时序图代码实现publicFileDTOcreateNoticeLetter(NoticeConditioncondition){FileDTOres=null;Mapphilipp=getMap(condition);F......
  • 十大经典排序算法(Java)--正在更新。。
    十大经典排序算法(2022年11月11日更新)1、冒泡排序冒泡排序是接下来的十大排序中最简单的排序。1.1方法描述简单来说,排序方法就是重复地走过要排序的数列,一次比较相邻......
  • java通过cglib动态生成实体bean的操作
    转载自:https://www.jb51.net/article/205882.htm maven依赖:12345678910<dependency>      <groupId>commons-beanutils</groupId>   ......
  • java使用mybatis-generator实现自动生成model、dao、xml
    pom中添加插件<plugin><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-maven-plugin</artifa......
  • java逻辑运算中异或^
    本文主要阐明逻辑运算符^(异或)的作用a^b,相异为真,相同为假。注意,异或运算,还能交换两个变量。inta=1;intb=2;System.out.println("a="+a+",b="+b);a......
  • Java回调机制研究
    1.什么是回调函数回调函数,顾名思义,用于回调的函数。回调函数只是一个功能片段,由用户按照回调函数调用约定来实现的一个函数。回调函数是一个工作流的一部分,由工作流来决定......
  • 大型CRM客户管理系统带小程序、H5 java源码(spring boot 后台 前端vue)
    CRM功能介绍1、系统管理:员工管理、角色管理、菜单管理、部门管理、岗位管理、字典管理、参数设置、日志管理2、系统监控:在线用户、定时任务、数据监控、服务监控3、系统工......