libgcj problem in FindClass with shared libraries.

abhishek desai
Wed Jun 3 10:04:00 GMT 2009


I am using libgcj version 3.4.6 (I have to use this version of gcc and
libgcj) . I have shared libraries with precompiled java clases and am
using JNI function call "(*env)->FindClass" to get the class. Tracing
through the _Jv_JNI_FIndClass I found that the dynamic library gets
loaded but the symbols are not loaded into the cache.

In the function call "jclass
gnu::gcj::runtime::VMClassLoader::findClass (jstring name)"
there is a call to "jboolean java::lang::Runtime::loadLibraryInternal
(jstring lib)" . This does the loading of the library by eventually
calling dlopen in libtdl.

After this call there is no call to access the symbol from the library
or to load it to the cache.
But the symbol is searched for in the cache using _Jv_FindClassInCache
which returns NULL. Is this a bug or I am missing something ? Need
help with getting the symbols loaded.


More information about the Java mailing list