A dumb question about clean-room VM's and JNI.
JNI is supposed to be binary compatible - a DLL
created using a compliant jni.h is supposed to work
with any VM.
The JNI specs specifies jobject as opaque struct.
Is this sufficient for a binary compatible JNI
clean-room implementation?
So, is a DLL that is compiled using Japhar jni.h
compatible for System.LoadLibrary use in Kaffe, or JDK?
Further, if I wrote a native application that used
dlopen/dlsym to retrieve the Invocation API from a
VM DLL, and RegisterNatives as well as System.LoadLibrary,
can I avoid linking to a particular Java implementation,
and expect this to be ninary compatible to any JNI out?
Or are there technical (or just legal) issues that rule
this out? Has anybody had experience doing this?
Thanks.
b.