Did you add a print statement at the end of the program just before the ending } for the main() method? Did it print anything?
I think some thread is holding JVM from closing
From the API doc for the Thread class:
The Java Virtual Machine continues to execute threads until either of the following occurs:
The exit method of class Runtime has been called and the security manager has permitted the exit operation to take place.
All threads that are not daemon threads have died, either by returning from the call to the run method
or by throwing an exception that propagates beyond the run method.
The Java Virtual Machine exits when the only threads running are all daemon threads.
Make sure all the GUI objects have been fully released so any threads associated with them end.