A core file represents the recorded state of memory of the JVM when it crashed (i.e. not Java level information that can be analysed in a profiling tool). This type of file is indicative of either a bug in the JVM or a problem with a native library that you're calling from within your Java application through JNI.
One command you could run is:
strings core | grep JAVA_HOME
... which will at least tell you which version of the JVM was running (and hence possibly responsible for the core dump).
You could also try running your application on a different OS or on the same platform but with a different version of the JVM to verify whether that is the cause of the crash.
You might also want to check out this question, where chillitom describes a technique for converting core files to HPROF files in order to analyse them with a Java memory analyser app. This requires using the jmap
command line tool; e.g.
# jmap -dump:format=b,file=dump.hprof /usr/bin/java core.1234