我正在尝试从 c++ 代码中调用 java 的东西。我将 JDK SE 7u25 的包含和 lib 路径链接到我的 Visual Studio 6.0(我只是在旧版本的 MSVC 中尝试它)。
JNIEnv* create_vm(JavaVM ** jvm) {
JNIEnv *env;
JavaVMInitArgs vm_args;
JavaVMOption options;
options.optionString = "-Djava.class.path=C:\\Users\\myName\\Desktop\\Java Src\\TestStruct"; //Path to the java source code
vm_args.version = JNI_VERSION_1_6; //JDK version. This indicates version 1.6
vm_args.nOptions = 1;
vm_args.options = &options;
vm_args.ignoreUnrecognized = 0;
int ret = JNI_CreateJavaVM(jvm, (void**)&env, &vm_args);
if(ret < 0)
printf("\nUnable to Launch JVM\n");
return env; }
我收到以下错误...
C:\PROGRAM FILES\JAVA\JDK1.7.0_25\LIB\jvm.lib:致命错误 LNK1113:机器类型无效
有什么问题?..我猜 JNI_VERSION_1_6 可能有问题..?因为我使用 SE 1.7.0_25 版本。但我无法在 jni.h 文件中找到 JNI_VERSION_1_7 ..
也许我必须卸载当前的 jdk 并安装 jdk SE 1.6 版本?
感谢您阅读它:)