【发布时间】:2013-07-29 14:45:36
【问题描述】:
我有一个尝试运行 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 $?
【问题讨论】:
-
请在您尝试使用 $VAL1 和 $VAL2 的地方发布呼叫 - 通常,这是正确的方法。
-
向我们展示您如何尝试引用 cronRunner 中的参数。另外,这是与
bash、ksh还是其他什么一起运行的? -
解决了。我做的试验是正确的。我在传递参数时有一个错字