3
我正在將一個Java項目遷移到Maven,我們正在使用Appassembler maven插件(版本1.3)來生成shell啓動腳本。我的問題是如何重定向標準輸出和/或Java程序的輸出?這Appassembler的pom.xml配置Maven Appassembler插件 - 標準輸出和/或stderr重定向
<program>
<mainClass>com.mycompany.app.App</mainClass>
<commandLineArguments>
<commandLineArgument>arg1</commandLineArgument>
<commandLineArgument>arg2</commandLineArgument>
</commandLineArguments>
<name>app</name>
</program>
產生:
exec "$JAVACMD" $JAVA_OPTS \
$EXTRA_JVM_ARGUMENTS \
-classpath "$CLASSPATH" \
-Dapp.name="app" \
-Dapp.pid="$$" \
-Dapp.repo="$REPO" \
-Dbasedir="$BASEDIR" \
com.mycompany.app.App \
arg1 arg2 "[email protected]"
參數佔位符($ @)是在啓動腳本中最後生成的令牌。
爲什麼不簡單地重定向生成的腳本的輸出而不是java調用,這比重定向jre調用的輸出更明顯。 – khmarbaise
因爲我們將確保應用程序線程中的某些未捕獲的異常將被記錄。用你的方法,它會依賴腳本的調用者。 – luboskrnac