我的应用程序包含一个使用JNI调用Java程序的c ++ exe文件,因此需要jvm.dll。 但是,我希望我的应用程序自带embedded式jre,但是在复制了JAVA_HOME中find的jre6文件夹并将其添加到我的安装程序后,它无法运行程序(虚拟机初始化期间发生错误无法加载本机库:Can找不到依赖库),当我在jvm.dll上使用依赖关系的步行者,它说它找不到gpsvc.dll,IEShims.dll和sysntfy.dll。 在我试图将这些DLL复制到jvm.dll所在的文件夹后,依赖walker告诉我gpsvc.dll和sysntfy.dll是64位,它应该是x86。 问题是,那些是我系统上唯一的dll,我该怎么办?
您可以从相应的网站下载所需的DLL,即从这个网站下载。
Java虚拟机不仅仅包含jvm.dll
。 您将需要重新分配整个JVM包,并将其安装到用户的机器上,而不是将jvm.dll
添加到您自己的应用程序中。
在安装应用程序之前,要求你的用户自己下载和安装JVM可能会容易得多。 如果你真的想用你的应用程序重新分配JVM,你需要在Oracle的网站上找到有关这个JVM的确切许可证以及如何去做的文档。 例如,查看JDK 6自述文件的这一段 。
这不像复制依赖的jvm.dll
和其他库那么简单。