我有一个Visual Studio C++项目,需要调用一些java功能。我打算使用JNI。我已经指定了额外的包含目录:
C:\Program Files (x86)\Java\jdk1.7.0_10\include C:\Program Files (x86)\Java\jdk1.7.0_10\include\win32
还有额外的库目录
C:\Program Files (x86)\Java\jdk1.7.0_10\lib
我已经成功编译所需的代码。但是由于下一个错误,我仍然无法运行它:
The program can't start because jvm.dll is missing...
我假设最简单的方法就是将dll文件复制到项目目录中。但我不知道应该复制哪个。例如,我找到了几个不同的dll文件:
C:\Program Files (x86)\Java\jdk1.7.0_10\jre\bin\client\jvm.dll
C:\Program Files (x86)\Java\jdk1.7.0_10\jre\bin\server\jvm.dll
C:\Program Files (x86)\Java\jre7\bin\client\jvm.dll
那我应该复制哪一个呢?
C:\Program Files (x86)\Java\jdk1.7.0_10\include C:\Program Files (x86)\Java\jdk1.7.0_10\include\win32
还有额外的库目录
C:\Program Files (x86)\Java\jdk1.7.0_10\lib
我已经成功编译所需的代码。但是由于下一个错误,我仍然无法运行它:
The program can't start because jvm.dll is missing...
我假设最简单的方法就是将dll文件复制到项目目录中。但我不知道应该复制哪个。例如,我找到了几个不同的dll文件:
C:\Program Files (x86)\Java\jdk1.7.0_10\jre\bin\client\jvm.dll
C:\Program Files (x86)\Java\jdk1.7.0_10\jre\bin\server\jvm.dll
C:\Program Files (x86)\Java\jre7\bin\client\jvm.dll
那我应该复制哪一个呢?
JAVA_HOME
是不够的。此外,必须定义指向jvm.dll
路径(或者只需复制DLL)。客户端版本和服务器版本有何区别?我在系统中只有这两个DLL还是还有其他的? - Andrew