public class Library
extends java.lang.Object
library.${name}.path
" System property is set to a directory,
subdirectories are searched:
${platform}/${arch}
"
${platform}
"
${os}
"
"
${name}-${version}
" library name if the version can be determined.
${name}
" library name
${name}${bit-model}-${version}
" library name if the version can be determined.
${name}-${version}
" library name if the version can be determined.
${name}
" library name
META-INF/native/${platform}/${arch}/${library[-version]}
": Store your library here if you want to embed
more than one platform JNI library on different processor archs in the jar.
META-INF/native/${platform}/${library[-version]}
": Store your library here if you want to embed more
than one platform JNI library in the jar.
META-INF/native/${os}/${library[-version]}
": Store your library here if you want to embed more
than one platform JNI library in the jar but don't want to take bit model into account.
META-INF/native/${library[-version]}
": Store your library here if your JAR is only going to embedding one
platform library.
library.${name}.path
" System property (if set)
java.io.tmpdir
" System property)
${name}
" is the name of library
${version}
" is the value of "library.${name}.version
" System property if set.
Otherwise it is set to the ImplementationVersion property of the JAR's Manifest${os}
" is your operating system, for example "osx
", "linux
", or "windows
"${bit-model}
" is "64
" if the JVM process is a 64 bit process, otherwise it's "32
" if the
JVM is a 32 bit process${arch}
" is the architecture for the processor, for example "amd64
" or "sparcv9
"${platform}
" is "${os}${bit-model}
", for example "linux32
" or "osx64
" ${library[-version]}
": is the normal jni library name for the platform (eventually with -${version}
) suffix.
For example "${name}.dll
" on
windows, "lib${name}.jnilib
" on OS X, and "lib${name}.so
" on linuxSystem.mapLibraryName(String)
Modifier and Type | Field and Description |
---|---|
private java.lang.ClassLoader |
classLoader |
private boolean |
loaded |
private java.lang.String |
name |
(package private) static java.lang.String |
SLASH |
private java.lang.String |
version |
Constructor and Description |
---|
Library(java.lang.String name) |
Library(java.lang.String name,
java.lang.Class<?> clazz) |
Library(java.lang.String name,
java.lang.String version) |
Library(java.lang.String name,
java.lang.String version,
java.lang.ClassLoader classLoader) |
Modifier and Type | Method and Description |
---|---|
private void |
chmod755(java.io.File file) |
private static void |
close(java.io.Closeable file) |
private void |
doLoad() |
private java.io.File |
extract(java.util.ArrayList<java.lang.Throwable> errors,
java.net.URL source,
java.lang.String prefix,
java.lang.String suffix,
java.io.File directory) |
private boolean |
extractAndLoad(java.util.ArrayList<java.lang.Throwable> errors,
java.lang.String customPath,
java.lang.String dir,
java.lang.String libName,
java.lang.String targetLibName) |
private java.io.File |
file(java.lang.String... paths) |
java.lang.String |
getArchSpecifcResourcePath()
Deprecated.
|
java.lang.String |
getArchSpecificResourcePath() |
static int |
getBitModel() |
java.lang.String |
getLibraryFileName() |
static java.lang.String |
getOperatingSystem() |
java.lang.String |
getOperatingSystemSpecifcResourcePath()
Deprecated.
|
java.lang.String |
getOperatingSystemSpecificResourcePath() |
static java.lang.String |
getPlatform() |
java.lang.String |
getPlatformSpecifcResourcePath()
Deprecated.
|
java.lang.String |
getPlatformSpecifcResourcePath(java.lang.String platform)
Deprecated.
|
java.lang.String |
getPlatformSpecificResourcePath() |
java.lang.String |
getPlatformSpecificResourcePath(java.lang.String platform) |
java.lang.String |
getResorucePath()
Deprecated.
|
java.lang.String |
getResourcePath() |
java.lang.String[] |
getSpecificSearchDirs()
Search directories for library:
${platform}/${arch} to enable platform JNI library for different processor archs
${platform} to enable platform JNI library
${os} to enable OS JNI library
no directory
|
void |
load() |
private boolean |
load(java.util.ArrayList<java.lang.Throwable> errors,
java.io.File lib) |
private boolean |
load(java.util.ArrayList<java.lang.Throwable> errors,
java.lang.String lib) |
private java.lang.String |
map(java.lang.String libName) |
private static java.lang.String |
version(java.lang.Class<?> clazz) |
static final java.lang.String SLASH
private final java.lang.String name
private final java.lang.String version
private final java.lang.ClassLoader classLoader
private boolean loaded
public Library(java.lang.String name)
public Library(java.lang.String name, java.lang.Class<?> clazz)
public Library(java.lang.String name, java.lang.String version)
public Library(java.lang.String name, java.lang.String version, java.lang.ClassLoader classLoader)
private static java.lang.String version(java.lang.Class<?> clazz)
public static java.lang.String getOperatingSystem()
public static java.lang.String getPlatform()
public static int getBitModel()
public void load()
private void doLoad()
@Deprecated public final java.lang.String getArchSpecifcResourcePath()
public final java.lang.String getArchSpecificResourcePath()
@Deprecated public final java.lang.String getOperatingSystemSpecifcResourcePath()
public final java.lang.String getOperatingSystemSpecificResourcePath()
@Deprecated public final java.lang.String getPlatformSpecifcResourcePath()
public final java.lang.String getPlatformSpecificResourcePath()
@Deprecated public final java.lang.String getPlatformSpecifcResourcePath(java.lang.String platform)
public final java.lang.String getPlatformSpecificResourcePath(java.lang.String platform)
@Deprecated public final java.lang.String getResorucePath()
public final java.lang.String getResourcePath()
public final java.lang.String getLibraryFileName()
public final java.lang.String[] getSpecificSearchDirs()
${platform}/${arch}
to enable platform JNI library for different processor archs${platform}
to enable platform JNI library${os}
to enable OS JNI libraryprivate boolean extractAndLoad(java.util.ArrayList<java.lang.Throwable> errors, java.lang.String customPath, java.lang.String dir, java.lang.String libName, java.lang.String targetLibName)
private java.io.File file(java.lang.String... paths)
private java.lang.String map(java.lang.String libName)
private java.io.File extract(java.util.ArrayList<java.lang.Throwable> errors, java.net.URL source, java.lang.String prefix, java.lang.String suffix, java.io.File directory)
private static void close(java.io.Closeable file)
private void chmod755(java.io.File file)
private boolean load(java.util.ArrayList<java.lang.Throwable> errors, java.io.File lib)
private boolean load(java.util.ArrayList<java.lang.Throwable> errors, java.lang.String lib)