准备通过jni加载jvm.dll来跟踪jvm代码。
代码很简单,创建vm的时候就出错了。主要是下面这句:long status = JNI_CreateJavaVM(&jvm, (void**)&env, &vm_args);报错信息是:
无法定位程序输入点JVM_FindClassFromBootLoader于动态链接库jvm.dll上。JVM_FindClassFromBootLoader是jvm.dll的私有接口,但调用是jvm自己调用的,不知道为什么出这个问题。不知道有没有朋友有相应的解决方案。以前是在Linux上面调,加载和跟踪libjvm.so都成功了,但字符界面跟踪不方面,谁知道windows上不行。

解决方案 »

  1.   

    补充:这里用的jvm是jdk-7-ea-bin-b94-windows-i586-debug-20_may_2010.jar,不知道是不是debug版本的问题。如果是这样的话,非debug版本无法跟入代码,这就郁闷了。
      

  2.   

    你的JVM的DLL所在目录没有放在PATH路径上。
      

  3.   

    放了,初步怀疑是debug版本dll的问题,我再创建一个product版本试试。
      

  4.   

    加载sun正式版的jdk1.6的jvm.dll没有问题。