The defunct process, also known as a zombie process is a process that that has exited and has a parent, but has not yet been waited for by the parent process.
The problem you're seeing is probably due to the IBM jdk that you're using. When I tested with it (over a year ago) it would segfault quite often on startup. See http://nsjava.sourceforge.net for a summary of jdk's that I used for testing. For linux, the only jdk that seemed reliable was the blackdown 1.1.8 version.