Since alpha4 i wouldn't call the JNI functionality an issue anymore as it has been fixed properly. Also note that the JNI functionality is a C++\Java thing and is separate from Qt.
Although I wrote (hacked) it a while ago and I'm not very experience with JNI anyway, I call a Java method called 'GetDataDirectory()' from my C++ code and it returns a string to the caller. A snippet:
jclass appClass = env->GetObjectClass(classPointer);
if (appClass){
jmethodID methodID = env->GetMethodID(appClass, "GetDataDirectory", "()Ljava/lang/String;");
jstring result = (jstring)env->CallObjectMethod(classPointer, methodID);
const char *strResult = env->GetStringUTFChars( result, 0 );
// do something useful here, if you're going to store the result I suggest you copy the return value
env->ReleaseStringUTFChars( result, strResult);
}