I've been running our apps as purely as I can (java -cp /path/to/libs/* path.to.the.App) and they're still being send SIGHUP signals for reasons I can't understand.
So, to sum you have tried: - with various classloading approaches - various JVMs - on various systems
I must say that I'm really puzzled by your problem. Especially since your app sounds to be not very complex and does not use JNI.
I would do the following: reproduce cleanly the problem with OpenJdk and submit it to the IcedTea project as a bug. They may be able to help you more, since they know what is going on in the JVM.
Last question: did you always have the problem, or did it suddenly appear? (if yes, after which changes in the app code, or update in the OS, etc.)