0

我有一个尝试运行 java 类的 shell 脚本。脚本如下所示:

export VAL1="param1";
export VAL2="param2";
set JAVA_HOME
set CLASSPATH
exec ${JAVA_HOME}/bin/java \
  -Dsun.net.inetaddr.ttl=1 \
  -Dsun.net.inetaddr.negative.ttl=1 \
  -Djava.io.tmpdir=<SOME-PATH>/tmp \
  -Dfile.encoding=UTF-8 \
  -XX:HeapDumpPath=<SOME-PATH>/var/output/logs/ \
  -XX:+HeapDumpOnOutOfMemoryError \
  \
  ${JVM_ARGS} \
  com.cron.cronRunner \
  ;

exit $?

我想将 VAL1 和 VAL2 作为命令行参数传递给我在下面调用的 cronRunner 类。我尝试使用 $VAL1 和 $VAL2 但是,当我尝试取消引用参数时,该类会引发 NPE。

我在这里做错了什么?这就是我尝试的方式。

编辑:

  export VAL1="param1";
    export VAL2="param2";
    set JAVA_HOME
    set CLASSPATH
    exec ${JAVA_HOME}/bin/java \
      -Dsun.net.inetaddr.ttl=1 \
      -Dsun.net.inetaddr.negative.ttl=1 \
      -Djava.io.tmpdir=<SOME-PATH>/tmp \
      -Dfile.encoding=UTF-8 \
      -XX:HeapDumpPath=<SOME-PATH>/var/output/logs/ \
      -XX:+HeapDumpOnOutOfMemoryError \
      \
      ${JVM_ARGS} \
      com.cron.cronRunner $VAL1 $VAL2 \
      ;

    exit $?
4

1 回答 1

0

将 args 放在主类名称之后:

  ...
  ${JVM_ARGS} \
  com.cron.cronRunner $VAL1 $VAL2\
  ;

编辑:我在编辑 OP之前发布了这个以反映相同

于 2013-07-29T14:49:22.453 回答