diff --git a/bindings/java/build-unix.xml b/bindings/java/build-unix.xml
index 55870ad910bf42b0c45491227e32b3698edb20ea..98c8e728241d501c9ef224dc28829220c3ba79e7 100644
--- a/bindings/java/build-unix.xml
+++ b/bindings/java/build-unix.xml
@@ -42,8 +42,11 @@
         <property environment="env"/>
 		<property name="jni.dylib" location="${basedir}/jni/.libs/libtsk_jni.dylib" />
 		<property name="jni.jnilib" value="libtsk_jni.jnilib" />
+		<property name="mac.zlib" location="/usr/lib/libz.dylib"/>
+		<property name="mac.libewf" location="${env.LIBEWF_HOME}/libewf/.libs/libewf.dylib"/>
         <copy file="${jni.dylib}" tofile="${x86_64}/mac/${jni.jnilib}"/>
-		<copy file="${jni.dylib}" tofile="${amd64}/mac/${jni.jnilib}"/>
+		<copy file="${mac.libewf}" tofile="${x86_64}/mac/libewf.dylib"/>
+		<copy file="${mac.zlib}" tofile="${x86_64}/mac/zlib.dylib"/>
     </target>
 
     <!-- Non-OS X -->
@@ -55,11 +58,31 @@
 	<target name="copyUnixLibs" depends="testTSKLibs" if="tsk_so.present">
 		<property environment="env"/>
 		<property name="jni.so" location="${basedir}/jni/.libs/libtsk_jni.so" />
+		<!-- check that this location is correct -->
+		<property name="unix.zlib" location="/usr/lib/libz.so"/>
+		<property name="zlib.so" value="zlib.so"/>
+		<property name="unix.libewf" location="${env.LIBEWF_HOME}/libewf/.libs/libewf.so"/>
+		<property name="libewf.so" value="libewf.so"/>
+		<!-- x86_64 -->
 		<copy file="${jni.so}" tofile="${x86_64}/unix/libtsk_jni.so"/>
+		<copy file="${unix.zlib}" tofile="${x86_64}/unix/${zlib.so}"/>
+		<copy file="${unix.libewf}" tofile="${x86_64}/unix/${libewf.so}"/>
+		<!-- amd64 -->
 		<copy file="${jni.so}" tofile="${amd64}/unix/libtsk_jni.so"/>
+		<copy file="${unix.zlib}" tofile="${amd64}/unix/${zlib.so}"/>
+		<copy file="${unix.libewf}" tofile="${amd64}/unix/${libewf.so}"/>
+		<!-- x86 -->
 		<copy file="${jni.so}" tofile="${x86}/unix/libtsk_jni.so"/>
+		<copy file="${unix.zlib}" tofile="${x86}/unix/${zlib.so}"/>
+		<copy file="${unix.libewf}" tofile="${x86}/unix/${libewf.so}"/>
+		<!-- i386 -->
 		<copy file="${jni.so}" tofile="${i386}/unix/libtsk_jni.so"/>
+		<copy file="${unix.zlib}" tofile="${i386}/unix/${zlib.so}"/>
+		<copy file="${unix.libewf}" tofile="${i386}/unix/${libewf.so}"/>
+		<!-- i586 -->
 		<copy file="${jni.so}" tofile="${i586}/unix/libtsk_jni.so"/>
+		<copy file="${unix.zlib}" tofile="${i586}/unix/${zlib.so}"/>
+		<copy file="${unix.libewf}" tofile="${i586}/unix/${libewf.so}"/>
 	</target>
 
 	<target name="copyLibs" depends="copyUnixLibs,copyMacLibs" />
diff --git a/bindings/java/src/org/sleuthkit/datamodel/LibraryUtils.java b/bindings/java/src/org/sleuthkit/datamodel/LibraryUtils.java
index 263a402b824a09d7627d179ebea2c7b0671fd6d7..529b343c3efe73d6ce2e112457d17ece3ac79ff4 100644
--- a/bindings/java/src/org/sleuthkit/datamodel/LibraryUtils.java
+++ b/bindings/java/src/org/sleuthkit/datamodel/LibraryUtils.java
@@ -100,7 +100,7 @@ private static boolean isMac() {
 	 * @param library
 	 * @return 
 	 */
-	public static void loadLibrary(Lib library) {
+	public static boolean loadLibrary(Lib library) {
 		StringBuilder path = new StringBuilder();
 		path.append("/NATIVELIBS/");
 		path.append(getPlatform());
@@ -120,32 +120,36 @@ public static void loadLibrary(Lib library) {
 			}
 		}
 		
-		if(libraryURL != null) {
-			// copy library to temp folder and load it
-			try {
-				java.io.File libTemp = new java.io.File(System.getProperty("java.io.tmpdir") + libName + libExt);
-				
-				if(libTemp.exists()) {
-					// Delete old file
-					libTemp.delete();
-				}
-				
-				InputStream in = libraryURL.openStream();
-				OutputStream out = new FileOutputStream(libTemp);
-				
-				byte[] buffer = new byte[1024];
-				int length;
-				while((length = in.read(buffer)) > 0) {
-					out.write(buffer, 0, length);
-				}
-				in.close();
-				out.close();
-				
-				System.load(libTemp.getAbsolutePath());
-			} catch (IOException e) {
-				// Loading failed.
-			} 
+		if(libraryURL == null) {
+			return false;
 		}
+		
+		// copy library to temp folder and load it
+		try {
+			java.io.File libTemp = new java.io.File(System.getProperty("java.io.tmpdir") + libName + libExt);
+
+			if(libTemp.exists()) {
+				// Delete old file
+				libTemp.delete();
+			}
+
+			InputStream in = libraryURL.openStream();
+			OutputStream out = new FileOutputStream(libTemp);
+
+			byte[] buffer = new byte[1024];
+			int length;
+			while((length = in.read(buffer)) > 0) {
+				out.write(buffer, 0, length);
+			}
+			in.close();
+			out.close();
+
+			System.load(libTemp.getAbsolutePath());
+		} catch (IOException e) {
+			// Loading failed.
+			return false;
+		} 
+		return true;
 	} 
 	
 	public static Lib[] getCRTLibs() {
diff --git a/bindings/java/src/org/sleuthkit/datamodel/SleuthkitJNI.java b/bindings/java/src/org/sleuthkit/datamodel/SleuthkitJNI.java
index abdfa26d5503e01ef6dfb99ed7aefbd073c3ae3a..7d0708a44fbe7a323fee35b0003f7715c467582a 100644
--- a/bindings/java/src/org/sleuthkit/datamodel/SleuthkitJNI.java
+++ b/bindings/java/src/org/sleuthkit/datamodel/SleuthkitJNI.java
@@ -118,6 +118,7 @@ public class SleuthkitJNI {
 
 	//Linked library loading
 	static {
+		boolean loaded = false;
         if (LibraryUtils.isWindows()) {
             try { 
                 // on windows force loading ms crt dependencies first
@@ -127,9 +128,13 @@ public class SleuthkitJNI {
                 // We should update this if we officially switch to a new version of CRT/compiler
 
                 for(LibraryUtils.Lib crt : LibraryUtils.getCRTLibs()) {
-                    LibraryUtils.loadLibrary(crt);
+                    loaded = LibraryUtils.loadLibrary(crt);
+					if(!loaded) {
+						System.out.println("SleuthkitJNI: failed to load " + crt.getLibName());
+					} else {
+						System.out.println("SleuthkitJNI: loaded " + crt.getLibName());
+					}
                 }
-                System.out.println("Loaded CRT libraries");
             } catch (UnsatisfiedLinkError e1) {
                 System.out.println(e1.toString());
                 try {
@@ -145,8 +150,12 @@ public class SleuthkitJNI {
 
         for (LibraryUtils.Lib lib : LibraryUtils.getLibs()) {
             try {
-                LibraryUtils.loadLibrary(lib);
-                System.out.println("SleuthkitJNI: loaded " + lib);
+                loaded = LibraryUtils.loadLibrary(lib);
+				if(loaded) {
+					System.out.println("SleuthkitJNI: loaded " + lib);
+				} else {
+					System.out.println("SleuthkitJNI: failed to load " + lib);
+				}
             } catch (UnsatisfiedLinkError e) {
                 System.out.println("SleuthkitJNI: error loading " + lib + "library, " + e.toString());
             }