I'm trying to virtualize JPC-rr (http://tasvideos.org/EmulatorResources/JPC.html), a free Java-based DOS emulator, but I'm always getting path-based errors depending on what I try.
The emulator is started with a batch-file which uses the following syntax:
java -jar emu.jar
While starting it in the VM everything works fine. Doing the same for the virtual app creates a "Unable to access jarfile" Error. I figured the working directory (c:\jpc) is not the same in the sandbox as in the VM, so I modified the batch-file:
pushd C:\jpc
java -jar c:\jpc\emu.jar
This helped start the program, but the emulator errors out with not being able to load other script files, indicating that it operates under a different path than it is actually stored in.
Moving the portable exe to c:\jpc actually helped getting past some of the error, but ultimately the emulator errors out with the following error messages:
Attempted to access nullpointer
Exception trace generated on 'Tue Sep 24 09:27:33 CEST 2013' by version '29f61fc by Ilari Liusvaara on 2012-03-14 20:02:41 +0200' (release 11.7).
Attempted to access null pointer
call of sun.awt.shell.Win32ShellFolder2$7 <no location available>
call of sun.awt.shell.Win32ShellFolder2$7 <no location available>
invoke of sun.awt.shell.Win32ShellFolderManager2$ComInvoker <no location available>
invoke of sun.awt.shell.ShellFolder <no location available>
invoke of sun.awt.shell.ShellFolder <no location available>
getFileSystemPath of sun.awt.shell.Win32ShellFolder2 <no location available>
access$300 of sun.awt.shell.Win32ShellFolder2 <no location available>
call of sun.awt.shell.Win32ShellFolder2$2 <no location available>
call of sun.awt.shell.Win32ShellFolder2$2 <no location available>
innerRun of java.util.concurrent.FutureTask$Sync <no location available>
run of java.util.concurrent.FutureTask <no location available>
runTask of java.util.concurrent.ThreadPoolExecutor$Worker <no location available>
run of java.util.concurrent.ThreadPoolExecutor$Worker <no location available>
run of sun.awt.shell.Win32ShellFolderManager2$ComInvoker$3 <no location available>
run of java.lang.Thread <no location available>
I'm using a clean XP x86 VM with Thinapp 4.7.3-891762.
I tried using Java 6 update 38 JDK and JRE. Both fail the same way. After wasting a day, I gave the latest portable Java 7 version of portableappz.com a try, but it threw the same error as above. I followed both suggestions for how to virtualize older and newer Java apps:
Step by Step Instructions on How to ThinApp Newer Java Versions | VMware ThinApp Blog - VMware Blogs
Both didn't help. I also created a debug entry point to the command line to see if I could make the emulator boot up properly manually, but wasn't lucky. I also created an entry point to java.exe and tried to access it with a non-virtualized version of the emulator, but received the same error as above. Is there any registry key or environment variable I can set or add manually to fix this issue? I'm pretty sure this is a simple path problem. Thanks in advance!