public final class NativeLibraryLoader
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
private static InternalLogger |
logger |
private static java.lang.String |
NATIVE_RESOURCE_HOME |
private static java.lang.String |
OSNAME |
private static java.io.File |
WORKDIR |
Modifier | Constructor and Description |
---|---|
private |
NativeLibraryLoader() |
Modifier and Type | Method and Description |
---|---|
private static byte[] |
classToByteArray(java.lang.Class<?> clazz)
Load the helper
Class as a byte array, to be redefined in specified ClassLoader . |
private static void |
closeQuietly(java.io.Closeable c) |
private static boolean |
isOSX() |
private static boolean |
isWindows() |
static void |
load(java.lang.String name,
java.lang.ClassLoader loader)
Load the given library with the specified
ClassLoader |
static void |
loadFirstAvailable(java.lang.ClassLoader loader,
java.lang.String... names)
Loads the first available library in the collection with the specified
ClassLoader . |
private static void |
loadLibrary(java.lang.ClassLoader loader,
java.lang.String name,
boolean absolute)
Loading the native library into the specified
ClassLoader . |
private static void |
loadLibraryByHelper(java.lang.Class<?> helper,
java.lang.String name,
boolean absolute) |
private static java.io.File |
tmpdir() |
private static java.io.File |
toDirectory(java.lang.String path) |
private static java.lang.Class<?> |
tryToLoadClass(java.lang.ClassLoader loader,
java.lang.Class<?> helper)
Try to load the helper
Class into specified ClassLoader . |
private static final InternalLogger logger
private static final java.lang.String NATIVE_RESOURCE_HOME
private static final java.lang.String OSNAME
private static final java.io.File WORKDIR
private static java.io.File tmpdir()
private static java.io.File toDirectory(java.lang.String path)
private static boolean isWindows()
private static boolean isOSX()
public static void loadFirstAvailable(java.lang.ClassLoader loader, java.lang.String... names)
ClassLoader
.java.lang.IllegalArgumentException
- if none of the given libraries load successfully.public static void load(java.lang.String name, java.lang.ClassLoader loader)
ClassLoader
private static void loadLibrary(java.lang.ClassLoader loader, java.lang.String name, boolean absolute)
ClassLoader
.loader
- - The ClassLoader
where the native library will be loaded intoname
- - The native library path or nameabsolute
- - Whether the native library will be loaded by path or by nameprivate static void loadLibraryByHelper(java.lang.Class<?> helper, java.lang.String name, boolean absolute) throws java.lang.UnsatisfiedLinkError
java.lang.UnsatisfiedLinkError
private static java.lang.Class<?> tryToLoadClass(java.lang.ClassLoader loader, java.lang.Class<?> helper) throws java.lang.ClassNotFoundException
Class
into specified ClassLoader
.loader
- - The ClassLoader
where to load the helper Class
helper
- - The helper Class
java.lang.ClassNotFoundException
- Helper class not found or loading failedprivate static byte[] classToByteArray(java.lang.Class<?> clazz) throws java.lang.ClassNotFoundException
Class
as a byte array, to be redefined in specified ClassLoader
.clazz
- - The helper Class
provided by this bundleClass
.java.lang.ClassNotFoundException
- Helper class not found or loading failedprivate static void closeQuietly(java.io.Closeable c)