JVM通过CreateProcess的推出()丢失类路径库

问题描述:

我启动以下使用的CreateProcess从Windows VC 6程序的命令行(过程)(或_spawnv()):JVM通过CreateProcess的推出()丢失类路径库

  • 的java -cp C:\ DIR \ updates.jar; c:\ dir \ main.jar Main

和updates.jar中的类更新(overiding some in main.jar)are not read or found。就好像无法找到或读取updates.jar库。

如果我从快捷方式或命令行本身启动相同的行,则会发现所有内容并正确执行。

如果我从命令行启动JVM,请保持它运行,然后启动可执行存根(上面),然后一切正常也可以。 (这使得它看起来像问题是一个文件权利的事情)。

任何有识之士将不胜感激!

- 爱德华

尝试使用Microsoft的FileMon实用程序来弄清楚发生了什么。将包含过滤器设置为“更新”以关注问题。

http://technet.microsoft.com/en-us/sysinternals/bb896642.aspx

你在另一台机器上试过这个吗?另一个OS?你使用哪种JVM?你尝试过不同的JVM吗?

你能否给我们提供一个证明问题的最小例子?

感谢jdigital

我试过FileMon,它告诉我我做错了什么。调用CreateProcess()的可执行文件有一个未关闭的文件句柄,用于更早地尝试复制更新JAR的updates.jar文件。错误代码在生产环境中运行,但不在测试环境中运行。