The problem is due to the launcher for launching dragged-out JNLP applet doesn't take into account the system properties or JVM arguments set inside a JNLP file. Therefore, the jvm used for launching the dragged-out applet doesn't contain the requested properties and will try to do a relaunch and fails in JNLP2Viewer.
A fix is to make use of the existing code in launcher.c for parsing the properties in the JNLP file and saves them as JnlpxArgs. The launcher will also launch a jvm (javaw.exe in this case) with the requested properties. So in JNLP2Viewer, it retreives the saved JnlpxArgs and stores them in JVMParameters. When JRE matching is performed, the launched jvm will satisfy the requested properties in the JNLP file and avoids a relaunch.