diff --git a/src/test/java/org/apache/bcel/generic/JdkGenericDumpTestCase.java b/src/test/java/org/apache/bcel/generic/JdkGenericDumpTestCase.java
index d891741..4bef3be 100644
--- a/src/test/java/org/apache/bcel/generic/JdkGenericDumpTestCase.java
+++ b/src/test/java/org/apache/bcel/generic/JdkGenericDumpTestCase.java
@@ -165,18 +165,21 @@
         addAllJavaHomesOnWindows(KEY_JRE_9, javaHomes);
         addAllJavaHomesOnWindows(KEY_JDK, javaHomes);
         addAllJavaHomesOnWindows(KEY_JDK_9, javaHomes);
-        addAllJavaHomes(EXTRA_JAVA_HOMES, javaHomes);
+        addAllJavaHomesFromKey(EXTRA_JAVA_HOMES, javaHomes);
         return javaHomes;
     }
 
-    private static void addAllJavaHomes(final String extraJavaHomesProp, final Set<String> javaHomes) {
-        final String path = System.getProperty(extraJavaHomesProp);
+    private static void addAllJavaHomesFromKey(final String extraJavaHomesKey, final Set<String> javaHomes) {
+        addAllJavaHomesFromPath(javaHomes, System.getProperty(extraJavaHomesKey));
+        addAllJavaHomesFromPath(javaHomes, System.getenv(extraJavaHomesKey));
+    }
+
+    private static void addAllJavaHomesFromPath(final Set<String> javaHomes, final String path) {
         if (StringUtils.isEmpty(path)) {
             return;
         }
         final String[] paths = path.split(File.pathSeparator);
         javaHomes.addAll(Arrays.asList(paths));
-
     }
 
     private static Set<String> findJavaHomesOnWindows(final String keyJavaHome, final String[] keys) {
