私は、Java アプリを Windows サービスにラップするために YAJSW と連携することを学んでいます。アプリケーションを起動すると問題なく動作しますが、サービスを停止するとJavaアプリケーション内でそのロジックが実行されるように、Javaアプリケーションにロジックを実装する方法を知りたいです。
Java アプリケーションに onStart() および onStop() メソッドを実装するようなもので、Java サービスを開始または停止するときにこれらを呼び出すことができます。
アプリケーションのエントリ ポイントであるメイン メソッド内で onStart() メソッド/ロジックを呼び出すことができます。onStop() を実装するために、これが私たちが行った方法です...
step-1) 次のクラスを作成します ...
public class ShutdownHandler implements Runnable {
public ShutdownHandler() {
super();
}
@Override
public void run() {
// call to your onStop() or code right here;
}
}
step-2) main メソッド内 ...
Thread shutdownThread = new Thread(new ShutdownHandler());
Runtime.getRuntime().addShutdownHook(shutdownThread);
これにより、Java アプリケーションの終了時に ShutdownHandler の run メソッドが呼び出されます。お役に立てれば。