終了ハンドラの使用

JRun でカスタム終了ハンドラを実装することによって、OEM ユーザは JRun の終了動作を制御できます。たとえば、JRun の終了やエラーが発生した場合に、独自のエラー メッセージを表示したり、ファイルを消去できます。

既定では、JRun は次の場合に System.exit() を呼び出します。
終了コード名
説明
終了コード値
RESTART_EXIT
 
再起動コマンドによって JRun が
終了しました。
戻り値は 5 です。
FATAL_ERROR_EXIT
 
重大なエラーによって JRun が
終了しました。
戻り値は 6 です。
STATUS_RUNNING_EXIT
 
ステータス コマンドが受信され、
JRun は現在実行されています。
戻り値は 7 です。
STATUS_NOT_RUNNING_EXIT
 
ステータス コマンドが受信され、
JRun は現在実行されていません。
戻り値は 8 です。

通常の終了時には、JRun によって System.exit() が呼び出されません。jrun.exe (Windows) とシェル スクリプト (UNIX) によってステータス コードがチェックされ、JRun を再起動する必要があるかどうかが判断されます。

OEM ユーザが独自のカスタム終了ハンドラを作成できるように、JRun には OEM ユーザ用の allaire.jrun.JRunExitHandler インターフェイスが含まれています。このインターフェイスには 1 つのメソッドがあります。

void exitJRun(int exitCode)

JRunExitHandler を実装するクラスの新しいインスタンスを生成した後、その JRun クラス上で新しい終了ハンドラを設定できます。このインスタンスは静的なフィールドに格納されるため、特定の時点でアクティブにできる終了ハンドラは 1 つだけです。

実装例は次のとおりです。

import java.io.*;
import allaire.jrun.*;
/**
* ベース JRunExitHandler クラスを拡張して、終了を無視するための
* カスタム実装を行います。
*/

public class MyJRun implements JRunExitHandler
{
public static void main(String[] args) throws IOException
{
  JRun.setExitHandler(new MyJRun());
  JRun.main(args);         
}

public void exitJRun(int exitCode)
{
  // 終了条件に対応した終了コードを使用して、
  // ここに終了処理コードを記述します。
}
}

上記のサンプル クラスでは JRunExitHandler が実装されます。main() メソッドによってクラスがインスタンス化され、JRun 上で終了ハンドラが設定され、次に JRun が呼び出されます。JRun が異常終了するか、再起動要求を受信すると、JRun の既定の exitJRun() の代わりに、新規のカスタム exitJRun() メソッドが呼び出されます。