diff --git a/loader.cc b/loader.cc
index 241749c20dd7668fd74f3501b28b6c61faad96eb..4c26fd9507bd923d781078e8bfaa3de7093fc4ad 100644
--- a/loader.cc
+++ b/loader.cc
@@ -253,14 +253,15 @@ void start_jvm(elf::program& prog)
  
     auto JNI_GetDefaultJavaVMInitArgs
         = prog.lookup_function<void (void*)>("JNI_GetDefaultJavaVMInitArgs");
-    JavaVMInitArgs vm_args;
+    JavaVMInitArgs vm_args = {};
     vm_args.version = JNI_VERSION_1_6;
     JNI_GetDefaultJavaVMInitArgs(&vm_args);
     auto JNI_CreateJavaVM
-        = prog.lookup_function<jint (JavaVM**, void**, void*)>("JNI_CreateJavaVM");
+        = prog.lookup_function<jint (JavaVM**, JNIEnv**, void*)>("JNI_CreateJavaVM");
     JavaVM* jvm = nullptr;
+    JNIEnv *env;
 
-    auto ret = JNI_CreateJavaVM(&jvm, nullptr, &vm_args);
+    auto ret = JNI_CreateJavaVM(&jvm, &env, &vm_args);
     debug(fmt("JNI_CreateJavaVM() returned %1%") % ret);
 }