Skip to content
Snippets Groups Projects
Commit d190f89d authored by Jeff Wallace's avatar Jeff Wallace
Browse files

Native libraries are loaded from default system locations on linux.

parent c3c60588
No related branches found
No related tags found
No related merge requests found
......@@ -42,10 +42,16 @@
<property environment="env"/>
<property name="jni.dylib" location="${basedir}/jni/.libs/libtsk_jni.dylib" />
<property name="jni.jnilib" value="libtsk_jni.jnilib" />
<property name="zlib.jni" location="/usr/lib/libz.dylib"/>
<property name="libewf.jni" location="/usr/local/lib/libewf.dylib"/>
<!-- x86_64 -->
<copy file="${jni.dylib}" tofile="${x86_64}/mac/${jni.jnilib}"/>
<copy file="${zlib.jni}" tofile="${x86_64}/mac/zlib.dylib"/>
<copy file="${libewf.jni}" tofile="${x86_64}/mac/libewf.dylib"/>
<!-- amd64 -->
<copy file="${jni.dylib}" tofile="${amd64}/mac/${jni.jnilib}"/>
<copy file="${zlib.jni}" tofile="${x86_64}/mac/zlib.dylib"/>
<copy file="${libewf.jni}" tofile="${x86_64}/mac/libewf.dylib"/>
</target>
<!-- Non-OS X -->
......
......@@ -38,6 +38,7 @@ public class LibraryUtils {
public static final Lib[] CRT_LIBS = new Lib[] { Lib.MSVCP, Lib.MSVCR };
public static final Lib[] OTHER_LIBS = new Lib[] { Lib.ZLIB, Lib.LIBEWF };
/**
* The libraries the TSK Datamodel needs.
*/
......@@ -71,35 +72,13 @@ public String getUnixName() {
* @return
*/
public static boolean loadAuxilliaryLibs() {
System.out.println("Java lib path: " + System.getProperty("java.library.path"));
boolean loaded = true;
if (LibraryUtils.isWindows()) {
try {
// on windows force loading ms crt dependencies first
// in case linker can't find them on some systems
// Note: if shipping with a different CRT version, this will only print a warning
// and try to use linker mechanism to find the correct versions of libs.
// We should update this if we officially switch to a new version of CRT/compiler
for(LibraryUtils.Lib crt : LibraryUtils.getCRTLibs()) {
loaded = LibraryUtils.loadLibFromJar(crt);
if(!loaded) {
System.out.println("SleuthkitJNI: failed to load " + crt.getLibName());
} else {
System.out.println("SleuthkitJNI: loaded " + crt.getLibName());
}
}
} catch (UnsatisfiedLinkError e1) {
System.out.println(e1.toString());
try {
//Try to load from system path.
System.out.println("Can't find CRT libraries, attempting to load from System.loadLibrary");
System.loadLibrary("msvcr100");
System.loadLibrary("msvcp100");
loaded = true;
} catch (UnsatisfiedLinkError e2) {
System.out.println("SleuthkitJNI: error loading CRT libraries, " + e2.toString());
loaded = false;
}
}
loaded = LibraryUtils.loadCRTLibs();
}
if (! LibraryUtils.isLinux()) {
for(LibraryUtils.Lib lib : LibraryUtils.getLibs()) {
loaded = LibraryUtils.loadLibFromJar(lib);
......@@ -110,9 +89,11 @@ public static boolean loadAuxilliaryLibs() {
}
}
} else {
System.out.println("In unix path.");
// Unix platform
for (Lib lib : LibraryUtils.getLibs()) {
try {
System.out.println("Lib name: " + lib.getUnixName());
System.loadLibrary(lib.getUnixName());
System.out.println("SleuthkitJNI: loaded " + lib.getLibName());
} catch (UnsatisfiedLinkError e) {
......@@ -138,6 +119,43 @@ public static boolean loadSleuthkitJNI() {
}
return loaded;
}
/** Load the CRT Libraries.
*
* @return
*/
private static boolean loadCRTLibs() {
boolean loaded = true;
try {
// on windows force loading ms crt dependencies first
// in case linker can't find them on some systems
// Note: if shipping with a different CRT version, this will only print a warning
// and try to use linker mechanism to find the correct versions of libs.
// We should update this if we officially switch to a new version of CRT/compiler
for(LibraryUtils.Lib crt : LibraryUtils.getCRTLibs()) {
loaded = LibraryUtils.loadLibFromJar(crt);
if(!loaded) {
System.out.println("SleuthkitJNI: failed to load " + crt.getLibName());
} else {
System.out.println("SleuthkitJNI: loaded " + crt.getLibName());
}
}
} catch (UnsatisfiedLinkError e1) {
System.out.println(e1.toString());
try {
//Try to load from system path.
System.out.println("Can't find CRT libraries, attempting to load from System.loadLibrary");
System.loadLibrary("msvcr100");
System.loadLibrary("msvcp100");
loaded = true;
} catch (UnsatisfiedLinkError e2) {
System.out.println("SleuthkitJNI: error loading CRT libraries, " + e2.toString());
loaded = false;
}
}
return loaded;
}
/**
* Get the name of the current platform.
*
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment