diff --git a/src/bindings/jni/ConfigureJNI.py b/src/bindings/jni/ConfigureJNI.py
index 9a94a87031c07726545ac63ec531590eda562b90..573bd682192e88618cba6c9b847128a98d6e08db 100644
--- a/src/bindings/jni/ConfigureJNI.py
+++ b/src/bindings/jni/ConfigureJNI.py
@@ -74,6 +74,11 @@ def ConfigureJNI(env):
             # should be in there somewhere
             java_headers = walkDirs(java_headers[0])
 
+    if not any(os.path.exists(os.path.join(path, 'jni.h'))
+               for path in java_headers):
+        print("Can't find jni.h in %s" % java_headers)
+        return 0
+
     # add Java's include and lib directory to the environment
     java_headers.append(os.path.join(java_headers[0], 'linux'))
     env.Append(CPPPATH = java_headers)
diff --git a/src/bindings/jni/SConscript b/src/bindings/jni/SConscript
index 7e506832c30face640bd27e55fb1680a0b9b00ab..3b454b998b5094060301820caafd33e5bdcb6492 100644
--- a/src/bindings/jni/SConscript
+++ b/src/bindings/jni/SConscript
@@ -14,7 +14,7 @@ if not ConfigureJNI(javaenv):
     Exit(0)
 
 
-javaenv.Append(CPPPATH=[".", "/usr/lib/jvm/java-8-oracle/include", "/usr/lib/jvm/java-8-oracle/include/linux", "../.."],
+javaenv.Append(CPPPATH=[".", "../.."],
               LIBS=['hammer'],
               LIBPATH=["../.."])
 
@@ -29,11 +29,12 @@ Default(jni_headers)
 
 #print(javaenv.Dump())
 
+shlib_env = env.Clone(CPPPATH=javaenv['JNI_CPPPATH'] + ['../..'])
 csources = ['com_upstandinghackers_hammer_Hammer.c',
 			'com_upstandinghackers_hammer_ParsedToken.c',
 			'com_upstandinghackers_hammer_Parser.c',
 			'com_upstandinghackers_hammer_ParseResult.c']
 
-libjhammer_shared = env.SharedLibrary('libjhammer', csources)
+libjhammer_shared = shlib_env.SharedLibrary('libjhammer', csources)
 Default(libjhammer_shared)