|
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||
java.lang.Objectorg.scijava.nativelib.BaseJniExtractor
org.scijava.nativelib.WebappJniExtractor
public class WebappJniExtractor
JniExtractor suitable for multiple application deployments on the same virtual machine (such as webapps)
Designed to avoid the restriction that jni library can be loaded by at most one classloader at a time.
Works by extracting each library to a different location for each classloader.
WARNING: This can expose strange and wonderful bugs in jni code. These bugs generally stem from transitive dependencies of the jni library and can be solved by linking these dependencies statically to form a single library
| Constructor Summary | |
|---|---|
WebappJniExtractor(String classloaderName)
|
|
| Method Summary | |
|---|---|
protected void |
finalize()
|
File |
getJniDir()
this is where JNI libraries are extracted to (e.g. |
File |
getNativeDir()
this is where native dependencies are extracted to (e.g. |
| Methods inherited from class org.scijava.nativelib.BaseJniExtractor |
|---|
extractJni, extractRegistered |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public WebappJniExtractor(String classloaderName)
throws IOException
classloaderName - is a friendly name for your classloader which will be embedded in the directory name
of the classloader-specific subdirectory which will be created.
IOException| Method Detail |
|---|
protected void finalize()
throws Throwable
finalize in class ObjectThrowablepublic File getJniDir()
BaseJniExtractor
getJniDir in class BaseJniExtractorpublic File getNativeDir()
BaseJniExtractor
getNativeDir in class BaseJniExtractor
|
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||