从c++调用java方法时出现问题
trouble in calling java method from c++
我正在尝试从c++代码中调用java填充。。我将JDKSE7u25的include-and-lib路径链接到我的visualstudio6.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 JVMn");
return env; }
我得到以下错误。。。
C: \PROGRAM FILES\JAVA\JDK1.70_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版本?
感谢您阅读:)
也许您正试图从32位程序链接lib文件的x64版本。如果您正在编译32位的exe,请确保您使用的是32位的JDK。
或者,您可以使用"LoadLibrary"+"GetProcAddress"动态使用"jvm.dll"来调用相应的JNI函数。同样,您需要注意32/64版本。
相关文章:
- 最小硬币更换问题(自上而下方法)
- 使用同一类中的方法重新分配字段时出现问题
- 我想直接在结构中插入,但没有一种方法可以正确避免填充问题
- Protobuf中重复字段的问题.使用重复字段进行序列化/反序列化的更好方法是什么?
- 此动态编程问题的自上而下方法
- 此解决方案中生成更改的方法数量(自上而下)有什么问题?
- 使用模板方法为标头提供空 cpp 时出现问题
- 这种针对 N Queen 问题的回溯方法不正确吗?
- C++ push() 和 pop() 方法使用指针的动态 LinkedList 的问题
- CreateFileA方法出现问题
- 必须使用尾随返回类型的示例,因为无法用旧方法解决问题
- 双重检查创建单例问题的方法
- C++ 指针问题 - 通过方法更新指针
- C++隐式/显式模板方法专用化问题
- 迭代快速排序方法的分区算法问题
- 单独的类声明和方法定义文件问题
- 我通过迭代加法将二进制数转换为十进制并检查单个字符(请参阅代码)的方法有什么问题?
- 如何通过动态规划方法解决这个问题?
- C++ 03 类模板 这是转换构造函数还是转换运算符?以及如何声明解决此问题的方法
- 一个c++语法问题:方法的类