`
hnlzwaq
  • 浏览: 8528 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
最近访客 更多访客>>
社区版块
存档分类
最新评论

用jni 初始化jvm

阅读更多

int _tmain(int argc, _TCHAR* argv[])

  int res;
  JavaVM *jvm;
  JNIEnv *env;
  JavaVMInitArgs vm_args;

  /*设置初始化参数*/
  JavaVMOption options[3];
  options[0].optionString = "-Djava.compiler=NONE";
  options[1].optionString = "-Djava.class.path=.;";
  options[2].optionString = "-verbose:jni";

  vm_args.version = JNI_VERSION_1_4;//版本号设置不能漏
  vm_args.nOptions = 3;
  vm_args.options = options;
  vm_args.ignoreUnrecognized= JNI_TRUE;
 
 
  res = JNI_CreateJavaVM(&jvm,(void**)&env, &vm_args);
  if (res < 0) {
     fprintf(stderr,"Can't create Java VM\n");
     exit(1);
  }
 
 
 fprintf(stdout,"Java VM destory.\n");
  return 0;
}

这个例子也是摘自网上的 ,只不过是调试通过了.

但是为什么一直提示找不到 jvm.dll 呢

 

 

分享到:
评论
1 楼 timerri 2007-09-30  
你要把%JAVAHOME%/jre/client加到path里。。
不能拷贝jvm.dll的哦

相关推荐

    使用C++创建java虚拟机JVM,使用JNI调用java函数.zip

    2. **初始化JVM**:找到JVM库后,需要使用`JNI_CreateJavaVM`函数来创建并初始化一个JVM实例。这个函数需要提供一个`JavaVMInitArgs`结构体,其中包含了JVM的启动参数,如是否启用调试等。 3. **获取JNIEnv指针**:...

    jni.h文件,完美适配ida软件,直接就可以使用。

    3. **本地方法注册**:在JNI初始化期间,必须使用`RegisterNatives`或在Java类加载时使用`JavaVM`接口的`AttachCurrentThread`和`GetEnv`方法来注册本地方法。 4. **数据类型转换**:JNI提供了一系列函数,如`...

    JNI CHM文档以及JNI编程规范

    在JNI初始化阶段,Java虚拟机(JVM)会传递JNIEnv指针给本地方法。 3. **数据类型转换**:JNI提供了Java和本地类型之间的转换接口,如`jboolean`、`jint`等,以便在两种环境中交换数据。 4. **调用Java方法**:JNI...

    JNI经典教程-开发必备6.pdf

    - **初始化JVM**:在C/C++程序中创建并初始化JVM实例。 - **查找类和方法**:使用JNI API查找Java类和方法的引用。 - **调用Java方法**:通过JNI API调用找到的Java方法。 ##### 3.2 示例 假设要在C/C++程序中调用...

    jvm 启动过程 JVM 原理

    5. **初始化**:最后,JVM执行类的初始化方法(),这包括静态变量的初始化和静态代码块的执行。当且仅当类被首次主动使用时,才会进行初始化。 6. **执行**:一旦主类完成初始化,JVM的执行引擎开始运行main方法。...

    jdk,jvm源码

    初始化则执行类的静态初始化块。 2. 运行时数据区:包括堆、方法区、程序计数器、虚拟机栈和本地方法栈。堆存储对象实例,方法区存放类信息,程序计数器记录当前线程执行的指令地址,虚拟机栈保存每个方法的局部...

    java中RCP中使用JNI

    - **加载库和初始化**:在Java代码中使用`System.loadLibrary`加载本地库,并在Java类中初始化JNI环境。 - **调用本地方法**:在Java中调用声明的native方法,实际执行的是本地代码。 4. **注意事项** - **内存...

    jniAPI JAVA的JNI编写帮助文档

    4. **JNI初始化**: Java代码加载本地库后,本地方法库中的`JNI_OnLoad`函数会被JVM调用,这是初始化本地库的时机。 5. **JNIEnv指针**: JNI接口的所有函数都通过一个`JNIEnv`指针传递。这个指针提供了对Java对象、...

    JNI

    JNI的初始化涉及到了几个关键组件:JNI头文件、本地方法接口、环境指针和本地方法。开发者需要使用JDK提供的`javah`工具生成对应的C/C++头文件,这个头文件包含了JNI函数的声明。本地方法接口定义了一组JNI函数,...

    jni4net-0.8.8.0.zip

    5. **在.NET中初始化jni4net**:在C#代码中进行必要的初始化工作,如加载Java虚拟机(JVM)。 6. **调用接口**:现在,Java代码可以调用转换后的C#库中的函数,反之亦然。 jni4net在跨平台开发、利用现有.NET库增强...

    jni编程指南(中、英文版)及配套源码

    7. **本地方法注册**:为了让Java虚拟机知道本地方法的存在,需要在JNI初始化阶段进行注册。通常,这个过程在动态链接库的初始化函数中完成。 8. **代码编译和加载**:本地方法通常作为动态链接库(DLL on Windows...

    jni中用多线程调用java代码

    Android的JNI库提供了`CreateJavaVM`和`AttachCurrentThread`等API来初始化Java虚拟机(JVM)和关联当前线程到JVM。 4. **调用Java方法**:使用`JNIEnv`指针,你可以找到并调用Java对象的方法。注意,由于线程安全...

    jni传递对象数组

    首先,我们需要包含头文件并初始化JNI环境: ```c++ #include "JniObjArrayExample.h" JNIEXPORT jobjectArray JNICALL Java_JniObjArrayExample_getObjectArray(JNIEnv *env, jobject thisObj) { // ... } ``` ...

    Java programming with JNI

    1. **初始化Java环境**:使用JNI函数初始化Java环境。 2. **加载Java类**:查找并加载所需的Java类。 3. **调用Java方法**:通过JNI函数调用Java方法。 4. **释放资源**:确保正确地释放所有资源,包括Java环境。 #...

    JAVA虚拟机(JVM)规范(中文版).rar

    5. **初始化**:执行类的初始化方法(),初始化静态变量和执行静态块。 ### 运行时数据区 1. **方法区**:存储类信息、常量、静态变量等。 2. **堆**:所有对象实例都在这里分配内存,垃圾收集的主要区域。 3. **...

    JNI层创建的线程中回调java方法

    在JNI初始化时,JavaVM指针会作为参数传入,我们可以保存它以便后续使用。 回调Java方法还需要注意以下几点: - **线程同步**:由于回调涉及到JVM内部的同步,如果不正确处理,可能会导致数据竞争或死锁。因此,...

    JNI解码接口完整工程

    JNI接口提供了在Java虚拟机(JVM)中调用本地方法的能力,这些本地方法通常是用C、C++或其他本地语言编写的。通过JNI,开发者可以利用Java的高级特性与本地代码的高性能优势相结合,特别是在处理密集计算或底层操作...

Global site tag (gtag.js) - Google Analytics