試してみるApache procrun私は理解できない動作をしています。それは、例外をスローするJavaプログラムのmain
メソッドにまで下がっています。これはどこにも記録されず、Windowsサービスは停止しません。私はそれをprunsrv.exe
でサービスとしてこれをインストールして起動すると、私はprocrun in --StartMode =例外をスローするメインを実行しているJvmが終了しない
public static void main(String[] args) throws Exception {
if (args.length<10000000) {
throw new Exception("one exception right away");
}
...
}
にmain
方法を変更し、さらに調査するために、それは問題なく起動し、一切のログ出力を生成しません。特に、サービスは止まらない。
は参考のため、ここではサービスがprocrunにインストールされている方法です。
& $procrun "//$operation//$service" `
--DisplayName="$service" `
--Description="$service" `
--DependsOn="$depends" `
--Startup=auto `
--Install="$procrun" `
--Jvm="$JVM" `
--Classpath="$cp" `
--Environment="PATH=$env:JAVA_HOME\bin" `
--JavaHome="$env:JAVA_HOME" `
--StartPath="c:\Search" `
--JvmOptions="-Xmx512M;-Xms512M;-Djava.awt.headless=true" `
--StartMode="jvm" `
--StartClass="$classname" `
--LogPath="c:\Search\std-logs" `
--LogPrefix="procrun-$service" `
--LogLevel="Debug" `
--StdError="c:\Search\std-logs\stderr-$no0" `
--StdOutput="c:\Search\std-logs\stdout-$no0" `
--StartParams="(unused)"
は、私は、サービスをすぐに停止することを期待し、私はいくつかのログ標準エラー出力/標準出力ファイルに出力するが、何も見つけただろう。誰もこれを説明できますか?
EDIT:私のああ、それは代わりに、叫んで叫んと出の(私の場合java.lang.noClassDefFoundError
中)procrun
ツバメjava.lang.Error
のように思えます。