`
szgaea
  • 浏览: 217525 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

JNI创建虚拟机失败解决办法

阅读更多
   昨天在LINUX用C++调用JAVA程序时,提示错误无法创建虚拟机,具体的错误如下:

    There was an error trying to initialize the HPI library.
Call to JNI_CreateJavaVM failed with error: -1
connect failed

   通过换JDK,设置PATH,CLASSPATH等环境变量的办法,无法解决。后来无意中,进入到jre的lib/i386/client下面执行,成功运行,经分析应该是运行时加载libjvm.so不成功,通过网上查资料,找到一个叫LD_LIBRARY_PATH的目录,此为系统在运行时加载动态库文件时引用的目录,则把此目录指定到jre的lib/i386/client目录下面,则一切OK;
   结论:通过JNI启动JVM时,无法加载libjvm.so,如未在程序里面做特殊处理,需要指定系统的引导路径。


 

   美丽健康网http://www.meilijiankang.com,有你所想,有你所用



  
分享到:
评论

相关推荐

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

    在提供的资源"使用C++创建java虚拟机JVM,使用JNI调用java函数"中,可能详细介绍了以上步骤的实际应用,包括代码示例和可能遇到的问题及解决方案。通过学习和实践这个教程,开发者可以更好地理解和掌握C++与Java之间...

    JNI创建java对象

    在本场景中,"JNI创建java对象"指的是利用JNI技术在C/C++原生代码中创建和操作Java对象。JNI在Android开发中尤其重要,因为Android系统的主要编程语言是Java,但为了实现高性能计算或调用操作系统底层功能,开发者...

    JNI攻略之十一――启动虚拟机调用java类

    - **创建Java虚拟机实例**:调用`JNI_CreateJavaVM`函数。 - **查找Java类和方法**:使用`FindClass`和`GetStaticMethodID`函数。 - **创建并传递参数**:通过`NewStringUTF`和`NewObjectArray`函数准备参数。 - **...

    JNI处理hashmap,string等对象的操作

    对于String对象的处理,JNI提供了`NewStringUTF`函数来创建一个新的Java String对象,以及`GetStringUTFChars`和`ReleaseStringUTFChars`来获取和释放字符串的UTF-8表示。例如,你可能需要在本地代码中解析或修改...

    jni操作arraylist对象

    // 处理创建对象失败的错误 } ``` 4. **调用ArrayList的add方法**:现在我们有了所有必要的元素,可以调用ArrayList的`add`方法了。 ```c++ env->CallBooleanMethod(listObj, addMethod, intValue); ``` 5. **...

    jni.zip jni编译jni下载

    在实际开发中,还需要注意一些细节,比如错误处理、内存管理(Java对象在本地代码中使用需要通过JNI函数创建和释放)、线程安全问题等。同时,由于涉及到跨语言和跨平台,理解JNI的工作原理和正确使用JNI头文件至关...

    DELPHI开发JNI必备 jni.pas

    `jni.pas`和`JNI_MD.INC`一起使用,可以帮助Delphi开发者构建能够在Java虚拟机(JVM)上运行的本地代码模块。 在Delphi中使用JNI,开发者可以实现以下功能: 1. **调用Java方法**:通过JNI,Delphi代码可以直接调用...

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

    在`NativeThreadCallbackDemo`这个示例中,很可能包含了一个演示如何在JNI创建线程并回调Java方法的代码。通常,它会展示如何保存JNIEnv,如何启动本地线程,以及如何在该线程中安全地调用Java方法。通过分析和学习...

    解决JNI中文乱码

    解决JNI中文乱码,

    jni.h头文件

    JNI(Java Native Interface)是Java平台的一个重要组成部分,它提供了在Java代码中调用本地(非Java)代码的能力,...同时,`jni_md.h`的使用则涉及到跨平台开发,理解其作用可以帮助解决在不同操作系统上遇到的问题。

    JNI的两个头文件jni.h和jni_md.h

    `jni.h`提供了大量的函数原型,这些函数用于在Java虚拟机(JVM)和本地代码之间建立桥梁。例如,`FindClass`函数用于查找Java类,`GetMethodID`用于获取Java方法的ID,`CallObjectMethod`用于调用Java对象的方法等。...

    JNI工程创建

    4. **创建JNI目录和源码**:在`src/main`目录下创建`jni`目录,然后在此目录中创建C/C++源码文件,例如`hello.c`。这个文件将包含你的原生代码。 5. **编写Android.mk**:在`jni`目录下创建`Android.mk`文件,用于...

    jni协议+自定义控件简单例子

    JNI(Java Native Interface)是Java平台提供的一种标准接口,它允许Java代码和其他语言写的代码进行交互。JNI在Android开发中尤为重要,特别是在需要调用C/C++原生代码以提升性能或者利用现有库的情况下。本项目...

    jni传递对象数组

    在Java层,我们创建一个本地方法声明,这个方法将被JNI调用。在C/C++层,我们实现这个本地方法,并通过JNI接口与Java对象进行交互。对象数组的处理涉及到对Java虚拟机(JVM)的内存管理和类型转换的理解。 1. **...

    jni.h文件.7z

    `jni.h`文件包含了所有JNI函数的声明,这些函数允许Java虚拟机(JVM)与本地代码(即非Java语言编写的代码)进行通信。当你在Java程序中使用JNI时,你需要包含这个头文件来定义和实现本地方法,这些方法可以在Java类...

    JNI

    `C++ GUI Programming with Qt 4.chm`可能就是一本关于如何使用C++和Qt创建GUI的参考资料,虽然没有直接提供关于JNI的细节,但它可以帮助理解C++和GUI编程的基本原理,这对于在Java中通过JNI调用Qt库是非常有帮助的...

    Jni应用个人详解

    2. 动态链接库加载失败:该问题可以通过检查动态链接库的路径和名称来解决。 Jni是一种powerful技术,allowing Java程序与native代码集成,使得Java程序能够调用native方法和库。然而,Jni也存在一些常见问题,需要...

    jni相关书籍资料

    第一本书籍“05134745605.pdf”可能详细介绍了JNI的基础概念,包括如何在Java代码中声明本地方法,创建头文件,编写C/C++代码实现这些方法,并通过Java虚拟机(JVM)加载动态链接库。书中可能还涵盖了JNI的各种数据...

    JNI CHM文档以及JNI编程规范

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

    jni层内存泄漏检测工具

    1. **对象追踪**:LeakTracer会监控JNI层创建的Java对象,记录它们的生命周期,包括创建、使用和释放过程。 2. **引用分析**:它检查JNI函数中是否存在对Java对象的长期引用,这些引用可能导致对象无法被垃圾回收。...

Global site tag (gtag.js) - Google Analytics