EVALUATION
The reason why it is only failing when launching from dos prompt is due to the way windows setup the search path.
We setup the windows registry key:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\javaws.exe\Path
to point to jre bin directory.
When javaws is invoke via the explorer, the above Path is always added to the windows PATH environment variable value for the process. That's why msvcr71.dll can be found in these cases.
However, when javaws.exe is invoked via the command prompt, the above Path is not added by windows. That's why we only see the problem via the command prompt.
If you launch via command prompt and you are in the jre6\bin directory, it works because the current directory will always be searched.
Our code in launcher_md.c, function LauncherSetup_md actually tries to prevent this problem by always adding the jre6\bin directory to the PATH, however we can adding the extra quote to the PATH, which causes it to fail. Apparently, nothing should be quoted in the PATH env variable for windows. I will file a separate bug for this issue.
Anyway, I believe we have the correct fix for this, which is to preload msvcr71.dll before loading deploy.dll.
|
EVALUATION
it's only happening when Java Web Start is launching from a dos prompt, which is not the most common scenario. The same scenario will work when launching from browser, java cache viewer, or from the application shortcuts created by java web start.
|