`
cocoIT
  • 浏览: 51091 次
  • 性别: Icon_minigender_1
  • 来自: 福建
文章分类
社区版块
存档分类
最新评论

java jni 调用cpp文件中的方法

 
阅读更多

这里说下最近修改nutch的源码碰到的调用cpp文件中的方法。

刚刚开始的时候,想直接在fetch.java中直接写jni接口。后来发现这样会留下不好的编程习惯。自己动手在fetch下写一个类。Hello.java。。。接下来就是要耍出大绝招了。。。

命令:

javac Hello.java

cd apache-nutch-1.7/build/classes #nutch编译完的class放在这个文件夹下

javah org.apache.nutch.fetcher.Hello #这边注意一下,这个Hello类要带上包名,今天就是跪在这边一个下午。。。

这时候你会兴奋的发现在classes文件下生成久等不来的....Hello.h文件了。。。重点还是在执行javah的过程。

接下来就时编译生成.so文件了。。。

命令:

cd apache-nutch-1.7/build/classes/org/apache/nutch/fetcher

gcc -shared -I /usr/local/java/jdk1.7.0_25/include -I /usr/local/java/jdk1.7.0_25/include/linux ***.cpp -o libHello.so #***.cpp就是你要调用的cpp

生成了libHello.so有木有~~~有木有~激动不?!

供学习JNI的参考,有出错的地方还望指出~不吝指教哦~

分享到:
评论

相关推荐

    JNI 调用实例(java JNI cpp互相调用实例)

    通过本文,我们可以了解 Java 和 C++ 之间的互相调用实例的实现过程,包括 C++ DLL 文件的创建和使用,以及 Java 代码中使用 JNI 技术调用 C++ DLL 文件的实现细节。这种技术可以应用于需要 Java 和 C++ 之间互相...

    JAVA JNI C++调用示例

    在这个过程中,关键点包括正确地处理JNI数据类型,如 `jobject`、`JNIEnv *` 和 `jmethodID`,以及在C++中调用Java方法。JNI提供了一套API来实现这些功能,例如 `CallVoidMethod()`、`FindClass()` 和 `GetMethodID...

    Java JNI调用动态库(Linux、Windows)的实现步骤

    ### Java JNI调用动态库(Linux、Windows)的实现步骤 #### 一、概述 Java Native Interface (JNI) 是一种标准的 Java 接口,它允许 Java 代码和其他语言(如 C 或 C++)编写的代码进行交互。通过 JNI,Java 应用...

    Java jni调用c实例

    在这个"Java jni调用c实例"中,我们将深入探讨如何通过JNI在Java应用程序中调用C语言编写的函数。 首先,我们需要了解JNI的基本结构。一个典型的JNI程序包括Java源代码、C/C++源代码以及对应的头文件。Java源代码中...

    C++库封装JNI接口-实现java调用c++

    Java程序可以通过JNI调用本地方法,这些本地方法是用其他语言编写的,并通过JNI接口暴露给Java。这个过程涉及到以下几个步骤: 1. **创建本地方法声明**:在Java类中,你需要声明本地方法。这些方法没有具体实现,...

    Android通过JNI调用.so动态库

    Android 通过 JNI(Java Native Interface)调用.so 动态库是 Android 开发中的一种常用技术。JNI 是一种允许 Java 代码与 native 代码之间进行交互的接口。通过 JNI,我们可以在 Android 项目中调用.so 动态库中的 ...

    Delphi10.3 中通过JNI调用 Java 函数

    总结来说,Delphi 10.3通过JNI调用Java函数的过程涉及以下步骤: 1. 创建C++ DLL项目,引入JNI头文件。 2. 定义JNI函数,实现Delphi和Java之间的交互逻辑。 3. 在Delphi程序中加载DLL,获取JNI函数的指针。 4. 使用...

    JNI实现java cpp相互调用

    JNI实现java cpp相互调用,包括动态注册和静态注册两种方式,具体包含 静态方式实现: C/C++中访问Java方法 C/C++中访问Java父类的方法 C/C++中访问/修改Java变量 Java中访问C/C++方法 Java中访问/修改C/C++变量 ...

    android JNI C 调用Java

    Android JNI(Java Native Interface)是Android系统提供的一种机制,它允许Java代码调用C/C++原生代码,同时也允许C/C++代码调用Java的方法。JNI在开发高性能、低级硬件交互、使用现有C库或者优化性能的关键部分时...

    3.jni_c++调用java中的方法

    在本主题中,我们将深入探讨如何使用C++通过JNI来调用Java中的方法,以及如何实现C++与JavaScript的互调。这在跨平台开发、性能优化或利用现有C/C++库时尤其有用。 首先,我们需要理解JNI的基本结构。JNI接口定义了...

    java 的jni本地调用简单实例

    总结来说,这个实例展示了Java通过JNI调用C++本地方法的基本流程,包括Java端的声明、JNI头文件的生成、C++的实现、动态链接库的编译以及最终的调用。虽然这个实例没有涉及复杂的类型转换,但在实际应用中,根据数据...

    通过JNI调用第三方动态库(生成两个.so文件)

    通过JNI调用第三方动态库在Android开发中是常见操作,涉及到的知识点包括Java本地方法声明、JNI接口定义、Makefile编写以及NDK编译。在实际操作过程中,务必注意代码的正确性,因为一个小错误都可能导致编译失败或...

    在windows中jni(生成dll)Linux中jni(生成so),java调用曾c++

    在本主题中,我们将深入探讨如何在Windows和Linux环境中利用JNI来生成动态链接库(DLL for Windows,SO for Linux),并使Java能够调用C++编写的函数。 1. **Java调用C++的基本原理** - JNI为Java应用程序提供了一...

    JAVA通过JNI调用C++代码函数的示例DEMO

    总结起来,JNI调用C++代码的过程包括:在Java中声明本地方法、生成JNI头文件、编写C++实现、编译C++代码为动态链接库,以及在Java程序中加载和调用本地方法。这种方式在处理底层操作、高性能计算或者与硬件设备交互...

    JNI与Java方法的相互调用

    理解JNI的工作原理,掌握如何声明和实现native方法,以及如何在本地代码中调用Java方法,对于进行系统级编程和优化Java应用至关重要。在实际开发中,开发者应根据需求选择合适的方法,合理利用JNI,以提高程序的性能...

    visual studio 2019下C++通过JNI调用JAVA代码

    在本文中,我们将深入探讨如何在Visual Studio 2019环境下使用C++通过Java Native Interface (JNI)来调用Java代码。JNI是Java平台的一部分,它为Java应用程序提供了与本地代码交互的能力,使得开发者可以将Java应用...

    java jni简单实例

    通过运行这个实例,我们可以学习到如何设置JNI环境,如何在Java中声明本地方法,如何在C/C++中实现这些方法,以及如何在Java程序中调用本地方法。这个过程对于理解和掌握JNI非常重要,因为它是Java与C/C++等其他语言...

    Android JNI调用-文件操作

    总结起来,Android中的JNI调用允许开发者使用C/C++进行文件操作,提供更高的效率和灵活性。通过声明native方法、编写C/C++代码、配置构建系统以及处理权限,开发者可以充分利用JNI进行复杂或性能敏感的文件操作。...

    jni.zip_C++ JNI_JNI 调用java_c调用java_jni_jni jdk1

    通过以上步骤,我们可以实现C++通过JNI调用Java类的功能。这个过程涉及到了Java和C++的混合编程,需要对两种语言有深入的理解,并且熟悉JNI提供的接口。在实际应用中,开发者还需要考虑多线程、内存管理、错误处理等...

    使用JNI进行混合编程:在Java中调用C/C++本地库

    JNI提供了一套接口,让Java虚拟机(JVM)能够调用本地方法,这些方法由C或C++编写,并编译成动态链接库(如Windows下的.dll或Linux下的.so文件)。JNI框架包括了Java端的本地方法声明和本地方法实现,以及C/C++端的...

Global site tag (gtag.js) - Google Analytics