It should not be necessary to add this java to Path or Libpath as I am starting java apps using Drive:\PathToJava\java(w).exe. However, I could be wrong... I'll have to give it a try.
Yes, you are, please read the readme of Java 1.6 ga.
As my HOME directory exists and java apps can use it the -Duser.home= parameter is not required.
Yes, mine exists too, but is heavily polluted and can grow exceptionally due too packages like Laoe and Lobo which can dump huge files into the Home directory. Besides you missed the point. With -Duser.home= I can setup my Java app in such a way that all files concerning the app are in one directory including those which are normally saved in the Home directory. If I want to delete the package I have only one directory to delete and don't have to think on some Home directory on a other drive. Also its not always clear what a Java app dumps into the Home directory. But its your computer, its your freedom what to do.
So, I end up with this as a cmd file:-
BEGINLIBPATH=J:\Java\openJDK6\bin
SET PATH=J:\Java\openJDK6\bin;%PATH%
javaw.exe -jar J:\Java\Arachnophilia\Arachnophilia.jar
I never understood why the cmd file has to be as small as possible. It doesn't matter to OS/2. The cmd file gives us the opportunity to solve all kinds of problems, so why not use it?
As far as I know you can't setup a new BEGINLIBPATH this way, you always need SET in front of it. But I might be wrong. The beauty of the SET command is that you know that you are going to change something so you have to think twice what your doing.
Its not wise to setup PATH this way if you need different JAVA versions. That's why I do it in a different way so the PATH statement is only valid for this command file.
Your kickoff with javaw.exe should be just java.
Your setup of this cmd file is wrong. I don't know where I am. Due to BEGINLIBPATH and PATH statements your Java.exe can run. But the way you start the Java app is wrong. There is no way which tells that app that it is in the right directory. So I always go back to the root of the drive to ensure that I always have the same starting point. After that I switch to the directory of the Java app and start the app from there. In your example I could start this from station C: or everything else, in such case its logical that the app can't find other program parts.
Having started Arachnophilia using the above command file I try to use File, Open. The result:-
Error log for Arachnophilia 5.5 build 2619
Thu Oct 06 15:25:14 GMT 2011
Exception in thread "AWT-EventQueue-0" java.lang.RuntimeException: java.io.IOException: Could not get shell folder ID list
at sun.awt.shell.Win32ShellFolder2$ComTask.execute(Win32ShellFolder2.java:1258)
at sun.awt.shell.Win32ShellFolder2.getFileSystemPath(Win32ShellFolder2.java:579)
at sun.awt.shell.Win32ShellFolderManager2.getPersonal(Win32ShellFolderManager2.java:155)
It tells me that it can't find a part of the program, a part from Java or a part from Odin. So, all pointing too that the BEGINLIBPATH and PATH statements are not correct.
So, no difference from not specifying the Path and LibPath.
Yes, I'm afraid there are..
The error log shows clearly that the problem is:-
java.io.IOException: Could not get shell folder ID list
See above, it can't find a specific lib.
I am also seeing this error with some other java apps.
That's logic, you make the same error.
With regard to our discussion about whether Odin is required: The above log indicates that Odin is *required* - note the references to Win32ShellFolder.
The reference Win32ShellFolder is as far as I know some kind of standard program variable. It doesn't say what the programmer puts behind it. For me it means Windows 32 bit Shell Folder, or WPS. I don't see Microsoft Windows code.
Regards
Joop