2

我使用 CreateProcess(或 _spawnv())从 Windows VC++ 6 程序启动以下命令行(进程):

  • java -cp c:\dir\updates.jar;c:\dir\main.jar 主要

并且updates.jar中的类更新(覆盖main.jar中的一些)未被读取或找到。就好像无法找到或读取updates.jar 库一样。

如果我从快捷方式或从适当的命令行启动同一行,则会找到并正确执行所有内容。

如果我从命令行启动 JVM,让它保持运行,然后启动可执行存根(上图),那么一切正常。(这使得问题看起来像是文件权限问题)。

任何见解将不胜感激!

——爱德华

4

3 回答 3

1

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

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

于 2008-11-16T21:39:56.157 回答
0

你在另一台机器上试过这个吗?另一个操作系统?您使用的是哪个 JVM?您是否尝试过不同的 JVM?

您能否为我们提供一个演示该问题的最小示例?

于 2008-11-13T10:59:12.573 回答
0

谢谢jdigital

我尝试了 FileMon,它向我展示了我做错了什么。调用 CreateProcess() 的可执行文件有一个未关闭的更新 JAR 文件句柄,该句柄来自之前尝试复制更新 JAR 的尝试。在生产环境中有效但在测试环境中无效的错误代码。

于 2008-11-17T20:35:09.737 回答