使用JNI的C ++应用程序抛出错误“找不到jvm.dll。重新安装应用程序可能会修复......”

时间:2012-11-13 14:40:41

标签: java-native-interface jnienv jniwrapper

我在VC6中编写了一个普通的C ++应用程序,它使用jni来调用java中的方法。为此,我在项目目录中包含了jni.h和其他lib文件夹。

代码编译但是当我运行应用程序时,它无法说"找不到jvm.dll。重新安装应用程序将修复它"。但是jvm.dll存在于我的电脑中。

如果我将应用程序的工作目录设置为jvm.dll所在的位置,那么它就像魅力一样。我无法将应用程序的工作目录设置为jvm.dll目录,因为此应用程序将来会成为一个DLL。

我还尝试将系统变量中的PATH变量更新为jvm.dll的位置,但没有任何作用..

我怀疑jvm.lib正在从我的应用程序未提供的某个目录位置加载jvm.dll ..因此它失败了,..

请告诉我出了什么问题。

提前致谢。

此致 Raghavendra

2 个答案:

答案 0 :(得分:1)

  

它无法说“找不到jvm.dll。重新安装应用程序会修复它”。

显然这是你自己的错误信息,或Windows':不是Java,而且是不正确的。重新安装应用程序不会对是否可以找到jvm.dll产生任何影响。

您需要确保jvm.dll在您的路径上。

答案 1 :(得分:0)

即使我的PATH如StockB所述配置,我也遇到了同样的错误。将DLL复制并粘贴到我的工作目录中解决了该问题。就我而言,这是../x64/Debug。