diff --git a/atomos.utils/atomos.utils.core/src/main/java/org/apache/felix/atomos/utils/core/plugins/finaliser/ni/NativeImagePlugin.java b/atomos.utils/atomos.utils.core/src/main/java/org/apache/felix/atomos/utils/core/plugins/finaliser/ni/NativeImagePlugin.java
index 0a48948..4d89970 100644
--- a/atomos.utils/atomos.utils.core/src/main/java/org/apache/felix/atomos/utils/core/plugins/finaliser/ni/NativeImagePlugin.java
+++ b/atomos.utils/atomos.utils.core/src/main/java/org/apache/felix/atomos/utils/core/plugins/finaliser/ni/NativeImagePlugin.java
@@ -115,7 +115,7 @@
                 config.nativeImageExecutable());
 
             //execute build an native image
-            nOptional.ifPresent(cli -> {
+            nOptional.ifPresentOrElse(cli -> {
                 try
                 {
                     Path binFile = cli.execute(binDir, arguments);
@@ -125,12 +125,17 @@
                 {
                     throw new RuntimeException(e);
                 }
-            });
+            }, () -> {throw new RuntimeException("Missing native image executable. Set 'GRAALVM_HOME' with the path as an environment variable");});
 
         }
         catch (Exception e)
         {
-            e.printStackTrace();
+            if (e instanceof RuntimeException) {
+            	throw (RuntimeException) e;
+            }
+            else {
+            	throw new RuntimeException(e);
+            }
         }
     }
 
diff --git a/atomos.utils/atomos.utils.substrate.impl/src/main/java/org/apache/felix/atomos/utils/substrate/impl/NativeImageCliUtil.java b/atomos.utils/atomos.utils.substrate.impl/src/main/java/org/apache/felix/atomos/utils/substrate/impl/NativeImageCliUtil.java
index f463077..7bbcda2 100644
--- a/atomos.utils/atomos.utils.substrate.impl/src/main/java/org/apache/felix/atomos/utils/substrate/impl/NativeImageCliUtil.java
+++ b/atomos.utils/atomos.utils.substrate.impl/src/main/java/org/apache/felix/atomos/utils/substrate/impl/NativeImageCliUtil.java
@@ -30,7 +30,7 @@
 public class NativeImageCliUtil
 {
 
-    private static final String GRAAL_HOME = "GRAAL_HOME";
+    public static final String GRAALVM_HOME = "GRAALVM_HOME";
 
     private static final String JAVA_HOME = "java.home";
 
@@ -48,7 +48,7 @@
 
         if (exec.isEmpty())
         {
-            throw new Exception("Missing native image executable. Set '" + GRAAL_HOME
+            throw new Exception("Missing native image executable. Set '" + GRAALVM_HOME
                 + "' with the path as an environment variable");
         }
 
@@ -96,9 +96,9 @@
             {
                 return oExec;
             }
-            if (System.getenv(GRAAL_HOME) != null)
+            if (System.getenv(GRAALVM_HOME) != null)
             {
-                oExec = findNativeImageExecutable(Paths.get(System.getenv(GRAAL_HOME)));
+                oExec = findNativeImageExecutable(Paths.get(System.getenv(GRAALVM_HOME)));
                 if (oExec.isPresent())
                 {
                     return oExec;
