Given that it is your program, I suggest that you do the following:
First, change the main
method so that everything is done in a try/catch block that reports all uncaught exceptions; e.g. something like this:
public static void main(String[] arghhhhh) {
try {
...
} catch (Throwable ex) {
System.err.println("Uncaught exception - " + ex.getMessage());
ex.printStackTrace(System.err);
}
}
Second, look for anywhere that you might "squash" unexpected exceptions by catching them and not reporting them.
Third, look for anywhere that you might call System.exit()
silently. This could happen in libraries too ... if you are using a badly written one.
If those measures don't give you answers, try to figure HOW the application is exiting by
- by running from a debugger with breakpoints set at key points, or
- by adding trace print statements at key points.