`
y13872888163
  • 浏览: 17695 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

JNI学习系列——在C/C++中调用JAVA

 
阅读更多
在C/C++中调用JAVA

本篇中主要是在C/C++中调用JAVA的变量和方法,这篇用到的示例是承接上一篇文章JNI学习系列——java中调用C/C++ ,下面来看看具体的实例
1.对上一篇中的TestNative.java稍加修改 ,下面代码黑体的部分为修改的部分
TestNative.java

2.在上一篇的 JNIEXPORT void JNICALL Java_com_yin_jni_TestNative_sayHello(JNIEnv * env, jobject obj)方法中添加新的代码
source.cpp
上述工程写好后就可以编译运行了
运行结果 :
10
Hello java!
100
10 为 C++中 count<<number<<endl输出;
注意,在java代码中并没有对方法function的调用,所以此方法是在C++中调用的;
number的值初始为10 通过C++中env->SetIntField(obj,id_number,100L);修改为100;
上面就写完了在C/C++中对java的简单调用,熟悉JAVA中反射的童鞋一定会对上述方法感到很熟悉吧,看起来跟反射很像。
在 jni.h 的头文件中还定义了许多的方法,感兴趣的童鞋可自己研究下....


分享到:
评论

相关推荐

    JNI编程(二) —— 让C++和Java相互调用(2)

    这篇博客“JNI编程(二) —— 让C++和Java相互调用(2)”显然深入探讨了如何利用JNI实现Java与C++之间的互调用。在Java应用程序中,有时为了性能优化或者利用已有的C/C++库,我们需要借助JNI来实现这种跨语言的通信。 ...

    Android 学习笔记——利用JNI技术在Android中调用、调试C++代码

    这篇“Android学习笔记——利用JNI技术在Android中调用、调试C++代码”将带你深入理解如何在Android应用中使用JNI来调用C++代码,以及如何进行调试。以下是对这一主题的详细阐述。 1. **JNI简介** JNI是Java平台的...

    JNI学习示例代码,含java代码工程和win32 dll工程

    即可以在Java代码中调用C/C++等语言的代码或者在C/C++代码中调用Java代码。由于JNI是JVM规范的一部分,因此可以将我们写的JNI的程序在任何实现了JNI规范的Java虚拟机中运行。同时,这个特性使我们可以复用以前用C/...

    jni例子——使用int数组

    在这个“jni例子——使用int数组”的示例中,我们将深入探讨如何在Java和C/C++之间传递和操作int数组。 1. **JNI基础知识**: - JNI接口提供了Java与本地代码(如C/C++)通信的桥梁,使得开发者可以在Java应用中...

    安卓Android源码——代码调用C++代码和C++代码调用代码.zip

    在安卓(Android)平台上,开发...这个压缩包提供的实例涵盖了Java调用C++以及C++调用Java的全过程,对于理解Android应用中的JNI使用非常有帮助。开发者可以通过学习这些示例,掌握在实际项目中灵活运用JNI技术的方法。

    JNI开发实例——锅炉压力监控器的源码

    4. **数据传输**:在JNI函数中,我们可以使用`JNIEnv`指针来访问Java对象和变量,例如,将读取到的压力值设置为Java类的成员变量,或者调用Java方法传递数据。 5. **事件处理和UI更新**:Java应用程序可能有一个...

    java调用C语言编写的so库中的函数,java调用C语言编写的dll库中的函数

    例如,`JavaJNA——dll回调函数实现 - 百度文库-java传回调函数给c语言写的so,dll.url`可能展示了如何在JNA中传递回调函数给C库。 对于数组和字符串的传递,Java与JNI之间的数据交换需要特别注意。例如,`java层向...

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

    标题与描述均指向了一个具体的技术主题——通过JNI(Java Native Interface)在C语言环境中启动Java虚拟机并调用Java类。这一技术应用广泛,尤其是在需要跨语言编程或利用Java的特性(如垃圾回收、多线程)而底层...

    Java JNI调用IC卡读卡器

    JNI在很多情况下被用来调用本地库,比如C、C++编写的库,这在处理特定硬件设备或者高性能计算时非常有用。在这个场景中,我们需要通过JNI来调用IC卡读卡器的DLL(动态链接库),该DLL可能是由非Java语言编写的,以...

    Java通过调用C/C++实现的DLL动态库——JNI的方法

    在本示例中,Java程序通过JNI调用了C/C++实现的DLL(动态链接库)来执行特定的数学运算。以下是通过JNI调用DLL动态库的具体步骤和知识点: 1. **创建Java类**: 首先,我们需要在Java中创建一个类,声明native...

    安卓Android源码——调用C++代码和C++代码调用源码.zip

    总结来说,Android调用C++代码和C++调用Java源码是通过JNI实现的,涉及到Android.mk或CMakeLists.txt的配置、JNI函数的编写以及内存管理等多个方面。正确理解和运用这些知识,能帮助开发者充分利用Android的本地层...

    Java中JNI的使用(一)——native

    Java中的JNI(Java Native Interface)是一种技术,允许Java代码与其他编程语言编写的代码进行交互,尤其是C和C++。JNI在许多场景下是必要的,比如访问操作系统特定的功能、提升性能或者利用已有的C/C++库。这篇博客...

    Android源码——调用C++代码和C++代码调用源码.zip

    3. **在C++中调用Java方法**:在C++代码中通过JNIEnv接口调用Java方法,传递回调函数指针。 4. **Java端处理回调**:Java方法接收到回调后,可以执行相应的操作。 以上是Android调用C++和C++调用Android的基本流程...

    Android NDK开发——C回调Java中的方法

    在这个文件中,我们需要实现JNI函数,通过JNI函数调用Java接口的方法。首先,使用`JNIEnv*`指针获取到Java对象,然后调用Java接口的方法: ```cpp #include &lt;jni.h&gt; #include extern "C" JNIEXPORT void ...

    JNI调用及回调就(Java&C) 源码

    JNI在很多场景下都是必要的,比如当Java需要利用特定的系统功能,或者需要与已有的C/C++库集成时。在这个场景中,JNI被用来实现Java程序对摄像头的控制,以及处理来自C代码的回调。 首先,我们需要理解JNI的工作...

Global site tag (gtag.js) - Google Analytics