|
jaulib v1.4.1
Jau Support Library (C++, Java, ..)
|
Static JNI Native Libraries handler including functionality for native JAR files using JarUtil and TempJarCache.
More...
Static Public Member Functions | |
| static boolean | addNativeJarLibs (final Class<?>[] classesFromJavaJars, final String singleJarMarker) |
| Loads and adds a JAR file's native library to the TempJarCache. | |
Static Public Member Functions inherited from org.jau.sys.JNILibrary | |
| static final String | getSystemEnvLibraryPathVarname () |
| Returns the system's environment variable name used for the dynamic linker to resolve library locations, e.g. | |
| static final List< String > | getSystemEnvLibraryPaths () |
Returns a list of system paths, from the getSystemEnvLibraryPathVarname() variable. | |
| static synchronized boolean | isLoaded (final String libName) |
| static synchronized boolean | loadLibrary (final String libname, final boolean ignoreError, final ClassLoader cl) throws SecurityException, UnsatisfiedLinkError |
| Loads the library specified by libname. | |
| static synchronized void | loadLibrary (final String libname, final String[] preload, final boolean preloadIgnoreError, final ClassLoader cl) throws SecurityException, UnsatisfiedLinkError |
| Loads the library specified by libname. | |
| static final String | findLibrary (final String libName, final ClassLoader loader) |
| static final String | isValidNativeLibraryName (final String libName, final boolean isLowerCaseAlready) |
| Comparison of prefix and suffix of the given libName's basename is performed case insensitive | |
| static final List< String > | enumerateLibraryPaths (final String libName, final boolean searchSystemPath, final boolean searchSystemPathFirst, final ClassLoader loader) |
| Given the base library names (no prefixes/suffixes) for the various platforms, enumerate the possible locations and names of the indicated native library on the system using the system path. | |
| static final List< String > | enumerateLibraryPaths (final String windowsLibName, final String unixLibName, final String macOSXLibName, final boolean searchSystemPath, final boolean searchSystemPathFirst, final ClassLoader loader) |
| Given the base library names (no prefixes/suffixes) for the various platforms, enumerate the possible locations and names of the indicated native library on the system using the system path. | |
Additional Inherited Members | |
Static Public Attributes inherited from org.jau.sys.JNILibrary | |
| static final boolean | DEBUG |
Static Protected Attributes inherited from org.jau.sys.JNILibrary | |
| static final boolean | PERF |
| static final Object | perfSync = new Object() |
| static long | perfTotal = 0 |
| static long | perfCount = 0 |
Static JNI Native Libraries handler including functionality for native JAR files using JarUtil and TempJarCache.
Definition at line 42 of file JNIJarLibrary.java.
|
static |
Loads and adds a JAR file's native library to the TempJarCache.
The native library JAR file's URI is derived as follows:
GLProfile.class -> http://lala/gluegen-rt.jar -> http://lala/gluegen-rt -> http://lala/gluegen-rt-natives-'os.and.arch'.jar Where:
classesFromJavaJars Generic description:
final Class<?>[] classesFromJavaJars = new Class<?>[] { Class1.class, Class2.class };
JNIJarLibrary.addNativeJarLibs(classesFromJavaJars, "-all");
If Class1.class is contained in a JAR file which name includes singleJarMarker, here -all, implementation will attempt to resolve the native JAR file as follows:
Otherwise the native JAR files will be resolved for each class's JAR file:
Examples:
JOCL:
// only: jocl.jar -> jocl-natives-os.and.arch.jar
addNativeJarLibs(new Class<?>[] { JOCLJNILibrary.class }, null, null );
JOGL:
final ClassLoader cl = GLProfile.class.getClassLoader();
// jogl-all.jar -> jogl-all-natives-os.and.arch.jar
// jogl-all-noawt.jar -> jogl-all-noawt-natives-os.and.arch.jar
// jogl-all-mobile.jar -> jogl-all-mobile-natives-os.and.arch.jar
// jogl-all-android.jar -> jogl-all-android-natives-os.and.arch.jar
// nativewindow.jar -> nativewindow-natives-os.and.arch.jar
// jogl.jar -> jogl-natives-os.and.arch.jar
// newt.jar -> newt-natives-os.and.arch.jar (if available)
final String newtFactoryClassName = "com.jogamp.newt.NewtFactory";
final Class<?>[] classesFromJavaJars = new Class<?>[] { NWJNILibrary.class, GLProfile.class, null };
if( ReflectionUtil.isClassAvailable(newtFactoryClassName, cl) ) {
classesFromJavaJars[2] = ReflectionUtil.getClass(newtFactoryClassName, false, cl);
}
JNIJarLibrary.addNativeJarLibs(classesFromJavaJars, "-all");
| classesFromJavaJars | For each given Class, load the native library JAR. |
| singleJarMarker | Optional string marker like "-all" to identify the single 'all-in-one' JAR file after which processing of the class array shall stop. |
Definition at line 252 of file JNIJarLibrary.java.