1

Apache procrunを試してみると、理解できない動作が見られます。要約するとmain、例外をスローする Java プログラムのメソッドです。これはどこにも記録されず、Windows サービスは停止しません。さらに調査するために、main方法を次のように変更しました

public static void main(String[] args) throws Exception {
  if (args.length<10000000) {
    throw new Exception("one exception right away");
  }
  ...
}

これをサービスとしてインストールしてprunsrv.exe起動すると、問題なく起動し、ログ出力はまったく生成されません。特にサービスは停止しません。

参考までに、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)"

サービスがすぐに停止し、stderr/stdout ファイルにいくつかのログ出力が見つかると予想していましたが、何もありません。誰でもこれを説明できますか?

編集:ああ、叫び、叫び、終了するのではなく、procrunツバメのようですjava.lang.Error(私の場合)。java.lang.noClassDefFoundError

4

1 に答える 1