diff --git a/tools/run_on_app.py b/tools/run_on_app.py
index a207ed8..1dabbd3 100755
--- a/tools/run_on_app.py
+++ b/tools/run_on_app.py
@@ -100,6 +100,7 @@
     return os.path.abspath(f.name)
 
 def main(argv):
+  utils.check_java_version()
   app_provided_pg_conf = False;
   (options, args) = ParseOptions(argv)
   outdir = options.out
diff --git a/tools/run_proguard_dx_on_app.py b/tools/run_proguard_dx_on_app.py
index 8578d1e..92a75ba 100755
--- a/tools/run_proguard_dx_on_app.py
+++ b/tools/run_proguard_dx_on_app.py
@@ -56,6 +56,7 @@
   return parser.parse_args(argv)
 
 def Main(argv):
+  utils.check_java_version()
   options = parse_arguments(argv)
 
   outdir = options.out
diff --git a/tools/test_framework.py b/tools/test_framework.py
index 04a12d3..b328375 100755
--- a/tools/test_framework.py
+++ b/tools/test_framework.py
@@ -59,6 +59,7 @@
   return parser.parse_args()
 
 def Main():
+  utils.check_java_version()
   args = parse_arguments()
 
   with utils.TempDir() as temp_dir:
diff --git a/tools/utils.py b/tools/utils.py
index dfc35d7..dab1dd1 100644
--- a/tools/utils.py
+++ b/tools/utils.py
@@ -170,3 +170,18 @@
   for segment_name, size in getDexSegmentSizes(dex_files).items():
     print('{}-{}(CodeSize): {}'
         .format(prefix, segment_name, size))
+
+# ensure that java version is 1.8.*-internal,
+# as opposed to e.g. 1.7* or 1.8.*-google-v7
+def check_java_version():
+  cmd= ['java', '-version']
+  output = subprocess.check_output(cmd, stderr = subprocess.STDOUT)
+  m = re.search('openjdk version "([^"]*)"', output)
+  if m is None:
+    raise Exception("Can't check java version: no version string in output"
+        " of 'java -version': '{}'".format(output))
+  version = m.groups(0)[0]
+  m = re.search('1[.]8[.].*-internal', version)
+  if m is None:
+    raise Exception("Incorrect java version, expected: '1.8.*-internal',"
+        " actual: {}".format(version))
