If you use System.load(), then you can use a static initialization block to copy the jni bits from the jar into a temp directory and then load it from that path. Associated permissions need to be granted of course.
Gregg Wonderly Sent from my iPad On May 13, 2010, at 9:59 AM, Dennis Reedy <[email protected]> wrote: > > On May 12, 2010, at 714PM, Peter Firmstone wrote: > >> I like the sound of that. >> >> We can have an Authentication Service, we could place the constraint of a >> key signature on that particular service (don't want untrusted parties >> providing authentication), but once loaded, the smart proxy could contain >> the JNI code required to perform the authentication? > > I'm not really sure if (and how) a smart proxy that once download can (or > should be given permission to) load a native library. From what I have seen, > the native library needs to be loaded from a location that the JVM knows > about (a priori). Would that native library need to be installed onto the > machine to the location where the JVM has been configured to load native > libraries from before that native library was loaded? > > Would the native library need to be loaded by a class loader that is > hierarchically a parent of class loaders that load services? This is because > the same JNI native library cannot be loaded into more than one class loader, > but different child class loaders of a class loader that loaded the JNI > library can gain access to the loaded library such that System.loadLibrary > will succeed (this naturally assumes that other class loaders in the JVM > would want the capability to load the native library). > > Dennis > >
