summaryrefslogtreecommitdiffstats
path: root/src/java/com/jogamp/common/os/NativeLibrary.java
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2012-05-04 01:12:25 +0200
committerSven Gothel <[email protected]>2012-05-04 01:12:25 +0200
commitcc76889a6fe96cffb91c9a3aa7934878c0ecd97e (patch)
tree229403dd5b617a60065e2f77ecee48158a1d5e6a /src/java/com/jogamp/common/os/NativeLibrary.java
parentce9ace37ca883a844fbab7aef8c85197282442ed (diff)
Use ClassLoader to find JNI native libraries. ClassLoader was only used for tool native libraries.
NativeLibrary: Expose 'String findLibrary(String libName, ClassLoader loader)', allowing utilization of System.load(loader.findLibrary(libName)). JNILibLoaderBase.loadLibrary(): Add optional ClassLoader argument, used to locate the library DynamicLibraryBundle: Use DynamicLibraryInfo's ClassLoader to find native libraries (tool + jni)
Diffstat (limited to 'src/java/com/jogamp/common/os/NativeLibrary.java')
-rwxr-xr-xsrc/java/com/jogamp/common/os/NativeLibrary.java17
1 files changed, 11 insertions, 6 deletions
diff --git a/src/java/com/jogamp/common/os/NativeLibrary.java b/src/java/com/jogamp/common/os/NativeLibrary.java
index 69d69b6..d0b135e 100755
--- a/src/java/com/jogamp/common/os/NativeLibrary.java
+++ b/src/java/com/jogamp/common/os/NativeLibrary.java
@@ -299,10 +299,7 @@ public class NativeLibrary implements DynamicLookupHelper {
// The idea to ask the ClassLoader to find the library is borrowed
// from the LWJGL library
- String clPath = getPathFromClassLoader(libName, loader);
- if (DEBUG) {
- System.err.println("NativeLibrary Class loader path to " + libName + ": " + clPath);
- }
+ final String clPath = findLibrary(libName, loader);
if (clPath != null) {
paths.add(clPath);
}
@@ -422,9 +419,10 @@ public class NativeLibrary implements DynamicLookupHelper {
private static boolean initializedFindLibraryMethod = false;
private static Method findLibraryMethod = null;
- private static String getPathFromClassLoader(final String libName, final ClassLoader loader) {
- if (loader == null)
+ private static String findLibraryImpl(final String libName, final ClassLoader loader) {
+ if (loader == null) {
return null;
+ }
if (!initializedFindLibraryMethod) {
AccessController.doPrivileged(new PrivilegedAction<Object>() {
public Object run() {
@@ -460,4 +458,11 @@ public class NativeLibrary implements DynamicLookupHelper {
}
return null;
}
+ public static String findLibrary(final String libName, final ClassLoader loader) {
+ final String res = findLibraryImpl(libName, loader);
+ if (DEBUG) {
+ System.err.println("NativeLibrary.findLibrary(<"+libName+">, "+loader+"): "+res);
+ }
+ return res;
+ }
}