From 6a76ed3ec98075eab3117f4de67f2ebf0354313c Mon Sep 17 00:00:00 2001 From: Jeff Wallace <jwallace@basistech.com> Date: Wed, 20 Nov 2013 11:20:40 -0500 Subject: [PATCH] Only include libtsk_jni in the jar file. --- bindings/java/build-unix.xml | 23 ----- bindings/java/build-windows.xml | 63 ++----------- bindings/java/build.xml | 1 - .../org/sleuthkit/datamodel/LibraryUtils.java | 93 ------------------- .../org/sleuthkit/datamodel/SleuthkitJNI.java | 1 - 5 files changed, 8 insertions(+), 173 deletions(-) diff --git a/bindings/java/build-unix.xml b/bindings/java/build-unix.xml index 81edd272e..371f69f17 100644 --- a/bindings/java/build-unix.xml +++ b/bindings/java/build-unix.xml @@ -30,9 +30,6 @@ <available file="./jni/.libs/libtsk_jni.so" property="tsk_so.present"/> <available file="./jni/.libs/libtsk_jni.a" property="present"/> <fail unless="present" message="Run make install on The Sleuthkit."/> - <!-- Default location to find zlib and libewf. Overwritten by properties in makefile --> - <property name="lib.z.path" value="/usr/lib"/> - <property name="lib.ewf.path" value="/usr/local/lib"/> </target> <!-- OS X --> @@ -45,16 +42,10 @@ <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="${lib.z.path}/libz.dylib"/> - <property name="libewf.jni" location="${lib.ewf.path}/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="${amd64}/mac/zlib.dylib"/> - <copy file="${libewf.jni}" tofile="${amd64}/mac/libewf.dylib"/> </target> <!-- Non-OS X --> @@ -66,32 +57,18 @@ <target name="copyLinuxLibs" depends="testTSKLibs" if="tsk_so.present"> <property environment="env"/> <property name="jni.so" location="${basedir}/jni/.libs/libtsk_jni.so" /> - <property name="zlib.so" location="${lib.z.path}/libz.so"/> - <property name="libewf.so" location="${lib.ewf.path}/libewf.so"/> <!-- x86_64 --> <copy file="${jni.so}" tofile="${x86_64}/linux/libtsk_jni.so"/> - <copy file="${zlib.so}" tofile="${x86_64}/linux/libz.so"/> - <copy file="${libewf.so}" tofile="${x86_64}/linux/libewf.so"/> <!-- amd64 --> <copy file="${jni.so}" tofile="${amd64}/linux/libtsk_jni.so"/> - <copy file="${zlib.so}" tofile="${amd64}/linux/libz.so"/> - <copy file="${libewf.so}" tofile="${amd64}/linux/libewf.so"/> <!-- x86 --> <copy file="${jni.so}" tofile="${x86}/linux/libtsk_jni.so"/> - <copy file="${zlib.so}" tofile="${x86}/linux/libz.so"/> - <copy file="${libewf.so}" tofile="${x86}/linux/libewf.so"/> <!-- i386 --> <copy file="${jni.so}" tofile="${i386}/linux/libtsk_jni.so"/> - <copy file="${zlib.so}" tofile="${i386}/linux/libz.so"/> - <copy file="${libewf.so}" tofile="${i386}/linux/libewf.so"/> <!-- i586 --> <copy file="${jni.so}" tofile="${i586}/linux/libtsk_jni.so"/> - <copy file="${zlib.so}" tofile="${i586}/linux/libz.so"/> - <copy file="${libewf.so}" tofile="${i586}/linux/libewf.so"/> <!-- i686 --> <copy file="${jni.so}" tofile="${i686}/linux/libtsk_jni.so"/> - <copy file="${zlib.so}" tofile="${i686}/linux/libz.so"/> - <copy file="${libewf.so}" tofile="${i686}/linux/libewf.so"/> </target> <target name="copyLibs" depends="copyLinuxLibs,copyMacLibs" /> diff --git a/bindings/java/build-windows.xml b/bindings/java/build-windows.xml index 821ae120f..f382803d8 100644 --- a/bindings/java/build-windows.xml +++ b/bindings/java/build-windows.xml @@ -52,65 +52,18 @@ </target> <target name="copyWinLibs64" depends="checkLibDirs" if="win64.exists"> - <property name="win64dir" location="${basedir}/../../win32/x64/${tsk.config}" /> + <property name="tsk.jni.64" location="${basedir}/../../win32/x64/${tsk.config}/libtsk_jni.dll" /> - <fileset dir="${win64dir}" id="win64dlls"> - <include name="*.dll" /> - </fileset> - <fileset dir="${crt}/win64" id="crt64dlls"> - <include name="*.dll" /> - </fileset> - - <copy todir="${amd64}/win" overwrite="true"> - <fileset refid="win64dlls" /> - </copy> - <copy todir="${amd64}/win" overwrite="true"> - <fileset refid="crt64dlls" /> - </copy> - - <copy todir="${x86_64}/win" overwrite="true"> - <fileset refid="win64dlls" /> - </copy> - <copy todir="${x86_64}/win" overwrite="true"> - <fileset refid="crt64dlls" /> - </copy> + <copy file="${tsk.jni.64}" todir="${amd64}/win" overwrite="true"/> + <copy file="${tsk.jni.64}" todir="${x86_64}/win" overwrite="true"/> </target> <target name="copyWinLibs32" depends="checkLibDirs" if="win32.exists"> - <property name="win32dir" location="${basedir}/../../win32/${tsk.config}" /> - <fileset dir="${win32dir}" id="win32dlls"> - <include name="*.dll" /> - </fileset> - <fileset dir="${crt}/win32" id="crt32dlls"> - <include name="*.dll" /> - </fileset> - - <copy todir="${i386}/win" overwrite="true"> - <fileset refid="win32dlls" /> - </copy> - <copy todir="${i386}/win" overwrite="true"> - <fileset refid="crt32dlls" /> - </copy> - - <copy todir="${x86}/win" overwrite="true"> - <fileset refid="win32dlls" /> - </copy> - <copy todir="${x86}/win" overwrite="true"> - <fileset refid="crt32dlls" /> - </copy> - - <copy todir="${i586}/win" overwrite="true"> - <fileset refid="win32dlls" /> - </copy> - <copy todir="${i586}/win" overwrite="true"> - <fileset refid="crt32dlls" /> - </copy> + <property name="tsk.jni.32" location="${basedir}/../../win32/${tsk.config}/libtsk_jni.dll" /> - <copy todir="${i686}/win" overwrite="true"> - <fileset refid="win32dlls" /> - </copy> - <copy todir="${i686}/win" overwrite="true"> - <fileset refid="crt32dlls" /> - </copy> + <copy file="${tsk.jni.32}" todir="${i386}/win" overwrite="true"/> + <copy file="${tsk.jni.32}" todir="${x86}/win" overwrite="true"/> + <copy file="${tsk.jni.32}" todir="${i586}/win" overwrite="true"/> + <copy file="${tsk.jni.32}" todir="${i686}/win" overwrite="true"/> </target> </project> diff --git a/bindings/java/build.xml b/bindings/java/build.xml index dcd3a31ba..f01f162a9 100755 --- a/bindings/java/build.xml +++ b/bindings/java/build.xml @@ -27,7 +27,6 @@ <property name="i386" location="build/NATIVELIBS/i386" /> <property name="i586" location="build/NATIVELIBS/i586" /> <property name="i686" location="build/NATIVELIBS/i686"/> - <property name="crt" location="${basedir}/crt" /> <path id="libraries"> <fileset dir="${lib}"> diff --git a/bindings/java/src/org/sleuthkit/datamodel/LibraryUtils.java b/bindings/java/src/org/sleuthkit/datamodel/LibraryUtils.java index d56ae1b52..be8685ff9 100644 --- a/bindings/java/src/org/sleuthkit/datamodel/LibraryUtils.java +++ b/bindings/java/src/org/sleuthkit/datamodel/LibraryUtils.java @@ -34,10 +34,6 @@ public class LibraryUtils { public static final String[] EXTS = new String[] { ".so", ".dylib", ".dll", ".jnilib" }; - - 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. @@ -66,51 +62,6 @@ public String getUnixName() { } } - /** - * Load all libraries needed for the current platform except the TSK JNI. - * - * @return - */ - public static boolean loadAuxilliaryLibs() { - System.out.println("Java lib path: " + System.getProperty("java.library.path")); - boolean loaded = true; - if (LibraryUtils.isWindows()) { - loaded = LibraryUtils.loadCRTLibs(); - } - - // Always try to load from jar first. - for(Lib lib : LibraryUtils.getLibs()) { - // Always try to load from jar first. - loaded = LibraryUtils.loadLibFromJar(lib); - if (!loaded) { - // if that fails, try to load from system - loaded = loadLibFromSystem(lib); - } - if (!loaded) { - System.out.println("SleuthkitJNI: failed to load " + lib.getLibName()); - } else { - System.out.println("SleuthkitJNI: loaded " + lib.getLibName()); - } - } - return loaded; - } - - /** - * Try to load the given Library from the System path. - * - * @param lib - * @return - */ - private static boolean loadLibFromSystem(Lib lib) { - String libName = (isWindows() ? lib.getLibName() : lib.getUnixName()); - try { - System.loadLibrary(libName); - } catch (UnsatisfiedLinkError e) { - return false; - } - return true; - } - /** * Load the Sleuthkit JNI. * @@ -125,42 +76,6 @@ 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. @@ -265,12 +180,4 @@ private static boolean loadLibFromJar(Lib library) { } return true; } - - private static Lib[] getCRTLibs() { - return CRT_LIBS; - } - - private static Lib[] getLibs() { - return OTHER_LIBS; - } } diff --git a/bindings/java/src/org/sleuthkit/datamodel/SleuthkitJNI.java b/bindings/java/src/org/sleuthkit/datamodel/SleuthkitJNI.java index 2d75ca64b..8653c39c8 100644 --- a/bindings/java/src/org/sleuthkit/datamodel/SleuthkitJNI.java +++ b/bindings/java/src/org/sleuthkit/datamodel/SleuthkitJNI.java @@ -118,7 +118,6 @@ public class SleuthkitJNI { //Linked library loading static { - LibraryUtils.loadAuxilliaryLibs(); LibraryUtils.loadSleuthkitJNI(); } -- GitLab