`
y13872888163
  • 浏览: 16983 次
  • 性别: 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/c++调用java

    VIII. C/C++调用JAVA类 58 一、 加载虚拟机: 59 二、 获取指定对象的类定义: 59 三、 获取要调用的方法: 59 四、 调用JAVA类方法: 60 五、 获得类属性的定义: 60 六、 数组处理: 60 七、 异常: 60 八、 多线程...

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

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

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

    JNI的API参考手册 博文链接:https://chnic.iteye.com/blog/236248

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

    主要介绍了Java通过调用C/C++实现的DLL动态库——JNI的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下

    JNI文档资料源码_2020_02_04.zip

    【Android NDK 开发】JNI 方法解析 ( C/C++ 调用 Java 方法 | 函数签名 | 调用对象方法 | 调用静态方法 ) I . 调用 Java 方法流程 II . 获取 jclass 对象 ( GetObjectClass ) III . 获取 jclass 对象 ( Find...

    JNI文档资料源码_2020_01_22

    Java 中加载调用动态库 IX . 使用 javah 工具生成 C++ 中需要实现的 Native 方法 ( 仅做参考 ) X . 总结 ———————————————— 版权声明:本文为CSDN博主「韩曙亮」的原创文章,遵循 CC 4.0 BY-NC-...

    详解AndroidStudio JNI +Gradle3.0以上JNI爬坑之旅

    JNI——(Java Native Interface),他是java平台的特性,不是安卓系统提供的。他定义了一些JNI函数,来让开发者可以通过调用这些函数来实现java代码调用C/C++代码。 2.如何使用JNI呢? 我们先将写好的C/C++代码...

    JAWIN(Java调用Win API)

    Java调用Win API:SUN官方提供的JNI调用时还要自己生成头文件,对已有的DLL再次进行封装。需要对C++非常熟悉,因为要写C++代码。不过还好还有另一种解决方案——Jawin

    java加壳的问题

    以前我认为这是不可能的,因为动态加载代码这样的内存级别的操作,java无法做到,除非使用JNI(Java Native Interface),调用自己编写的C代码,在C代码中实现动态加载java代码。但是,C如何加载java代码呢?这需要对...

    JAVA上百实例源码以及开源项目源代码

    在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天...

    JAVA上百实例源码以及开源项目

    在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天...

    h_JAVA 2应用编程150例.rar

    实例139 控制Java与C++程序的通信 510 实例140 访问Windows注册表 514 第13章 Java配置与集成 523 实例141 J2SDK的安装配置 524 实例142 使用第三方包 525 实例143 安装配置Tomcat 526 实例144 安装配置Apache 528 ...

    java应用软件程序设计

    这里边包括:第1章 Java图形用户界面编程 1 实例1 布局管理 2 实例2 设计软件启动界面 9 实例3 实现多色窗口 11 实例4 切分窗口 13 实例5 丰富多彩的按钮 15 实例6 在窗口中显示背景图 16 实例...

    深入理解Android:卷I--详细书签版

     Android系统开发工程师常常需要深入理解系统的运转过程,而本书所涉及的内容可能正是他们在工作和学习中最想了解的。那些对具体模块(如Audio系统和Surface系统)感兴趣的读者 也可以直接阅读相关章节的内容。 ...

    新版Android开发教程.rar

    的 Android SDK 提供了在 Android 平台上使用 JaVa 语言进行 Android 应用开发必须的工具和 API 接口。 特性 • 应用程序框架 支持组件的重用与替换 • Dalvik Dalvik Dalvik Dalvik 虚拟机 专为移动设备优化 • ...

Global site tag (gtag.js) - Google Analytics