簡體   English   中英

在Shell腳本中傳遞Java命令行參數

[英]Passing java command line arguments in a shell script

我有一個試圖運行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 $?

將args放在主類名稱的后面:

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

編輯 :我在編輯OP以反映相同內容之前發布了此信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM