上記の回答を参考にすると、起動/シャットダウン以外のコードがある場合でも問題が発生する可能性があります。たとえば、次のようなものがあるとします。
public class QuartzTest {
public static void main(String[] args) {
try {
// Grab the Scheduler instance from the Factory
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
// and start it off
scheduler.start();
System.out.println(args[5]);
scheduler.shutdown();
} catch (SchedulerException se) {
se.printStackTrace();
}
}
}
ArrayIndexOutOfBoundsException (またはそのようなもの) が発生するため、アプリケーションがシャットダウンを呼び出すことはありません。これを解決する方法はいくつかありますが、最も簡単な方法は、すべての中間コードを例外ハンドラーでラップし、そこで「処理」することです。例: public class QuartzTest {
public static void main(String[] args) {
try {
// Grab the Scheduler instance from the Factory
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
// and start it off
scheduler.start();
try {
System.out.println(args[5]);
} catch (Exception e) {
e.printStackTrace();
}
scheduler.shutdown();
} catch (SchedulerException se) {
se.printStackTrace();
}
}
}