public final class NativeLibraryLoader
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
private static class |
NativeLibraryLoader.NoexecVolumeDetector |
Modifier and Type | Field and Description |
---|---|
private static boolean |
DELETE_NATIVE_LIB_AFTER_LOADING |
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 originalName,
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 final boolean DELETE_NATIVE_LIB_AFTER_LOADING
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 originalName, 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)