我有一个尝试运行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 $?
答案 0 :(得分:0)
将你的args放在主类名称后面:
...
${JVM_ARGS} \
com.cron.cronRunner $VAL1 $VAL2\
;
编辑:我在之前发布了这个 OP被编辑以反映相同的