如何使用普通变量传递系统变量以在命令行批处理脚本中调用 java 程序

How to pass system variable with normal variable to call java program in command line batch script

java -cp %EPM_JAVA_CLASSPATH% -DEPM_ORACLE_INSTANCE=%1 -DHFM_CLUSTER=%2 -DHFM_APPLICATION=%3 runConsoltesting %4 %5 %6 %7

当我尝试访问第 5 个参数时,它显示:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
at runConsoltesting.main(runConsoltesting.java:42)

它只需要参数到 class name

main class runConsoltesting 之后给出的是 main 方法参数,总共 4 个(%4、%5、%6、%7)。因此,当您尝试访问第五个元素时,您会收到 ArrayOutOfBoundException。

%1、%2 和 %3 是 JVM 参数而不是 java 主要方法参数。所以这些可以用下面的代码读取。

System.getProperty(String 属性),此处 属性 是您的 -D 参数的名称。

例如,System.getProperty("EPM_ORACLE_INSTANCE") 将 return 为 %1 位置设置的值。