- 浏览: 369674 次
- 性别:
- 来自: 苏州
文章分类
- 全部博客 (335)
- C++ (190)
- 设计模式 (43)
- 数据库技术 (5)
- 网络编程 (11)
- 自动化测试 (6)
- Linux (13)
- OpenSSL (10)
- MS Crypt API (5)
- SCM (2)
- English (4)
- Android (10)
- EMV规范 (1)
- Saturn Platform (0)
- C (10)
- SQL (2)
- ASP.NET (3)
- 英语口语学习 (3)
- 调试工具 (21)
- 编译技术 (5)
- UML (1)
- 项目管理 (5)
- 敏捷开发 (2)
- Http Server (6)
- 代码审查、代码分析 (5)
- 面试基础 (10)
- 重点知识 (16)
- STL (6)
- Efficient C++资料 (8)
- 数据结构和算法 (7)
- 读书笔记 (0)
- 开源项目 (4)
- 多线程 (2)
- Console App (6)
- 个人开源项目 (4)
- IBM DevelopWorks (4)
- Java (16)
- 内存泄漏相关调试和检测 (13)
- 软件测试相关技术 (2)
- C# (11)
- Apple Related (1)
- 软件测试和管理 (2)
- EMV (1)
- Python (1)
- Node.js (6)
- JavaScript (5)
- VUE (1)
- Frontend (1)
- Backend (4)
- RESTful API (3)
- Firebase (3)
最新评论
-
u013189503:
来个密码吧
[C++][Logging] 项目中写日志模块的实现 -
wyf_vc:
来个密码啊!!
[C++][Logging] 项目中写日志模块的实现
参考link
http://www.cnblogs.com/liuling/p/2013-12-20.html
http://blog.csdn.net/cl05300629/article/details/39050703
1 创建Java包含native方法的类,如下:
2 通过JDK工具javah生成C/C++头文件,如下:
3 生成如下的C++头文件,TestNative.h
4 创建C++ win32 DLL Project,并且包含java的include files并添加测试代码
5 添加Java测试代码
6 编译运行demo,可以看见输出的“Hello World!”
http://www.cnblogs.com/liuling/p/2013-12-20.html
http://blog.csdn.net/cl05300629/article/details/39050703
1 创建Java包含native方法的类,如下:
public class TestNative { public native void sayHello(); }
2 通过JDK工具javah生成C/C++头文件,如下:
C:\Users\jacky_dai\Desktop\java>javah TestNative
3 生成如下的C++头文件,TestNative.h
/* DO NOT EDIT THIS FILE - it is machine generated */ #include <jni.h> /* Header for class TestNative */ #ifndef _Included_TestNative #define _Included_TestNative #ifdef __cplusplus extern "C" { #endif /* * Class: TestNative * Method: sayHello * Signature: ()V */ JNIEXPORT void JNICALL Java_TestNative_sayHello (JNIEnv *, jobject); #ifdef __cplusplus } #endif #endif
4 创建C++ win32 DLL Project,并且包含java的include files并添加测试代码
#include <iostream> #include "TestNative.h" using namespace std; JNIEXPORT void JNICALL Java_TestNative_sayHello(JNIEnv *, jobject); { cout<<"hello world!"<<endl; }
5 添加Java测试代码
public class TestNative { public native void sayHello(); /** * @param args */ public static void main(String[] args) { System.loadLibrary("NativeCode"); TestNative tNative = new TestNative(); tNative.sayHello(); } }
6 编译运行demo,可以看见输出的“Hello World!”
javah TestNative.java java TestNative
- Java_JNI_Demo.zip (13.8 KB)
- 下载次数: 0
发表评论
-
FreeRTOS
2022-03-05 16:31 248Ref https://blog.csdn.net/weix ... -
串口通讯相关
2018-11-02 13:44 410https://bbs.csdn.net/wap/topics ... -
[转]C++验证IP是否可以PING通
2018-10-30 17:54 1325https://www.cnblogs.com/guoyz13 ... -
C++/MFC 換皮膚
2018-10-20 11:05 477https://blog.csdn.net/u01123991 ... -
WinCE 截屏 - C++ 代碼
2018-08-31 09:45 574// this function create a bmp ... -
[轉]java中String的“==”和equals判断相等性
2017-11-27 15:24 457http://blog.csdn.net/liucheng20 ... -
Android NDK搭建環境
2017-11-27 13:25 580https://www.cnblogs.com/ut2016- ... -
8583协议相关
2017-10-17 13:38 5728583相关资料,整理中... -
Java语言编码规范
2017-06-27 15:54 569http://morningspace.51.net/reso ... -
Java AWT应用示例 - 持续更新
2017-06-27 11:39 637/* * @(#)SampleAWT.java ... -
Java 事件模型基础:监听器、事件、事件源、事件注册
2017-06-27 08:55 823转自 http://www.cnblogs.com/mengd ... -
Java中基本数据类型和包装器类型的关系
2017-06-27 08:37 757转自 http://www.cnblogs.com/h ... -
深入剖析Java中的装箱和拆箱
2017-06-27 08:31 488转自 http://www.cnblogs.com/dolph ... -
Java JAR打包相关
2017-06-26 20:57 584JAVA jar打包时MANIFEST.MF格式约定 http ... -
Java反编译工具 - Java Decompiler
2017-06-21 20:14 474http://jd.benow.ca/ JD-GUI is ... -
javac,使用"-d ."与省略-d的区别
2017-06-20 20:27 810在当前工作目录下生成class文件,一般情况下有两种方法 ... -
JAVA环境变量配置
2017-06-19 13:56 355参考Link http://www.cnblogs.com/x ... -
JAVA高级应用之反射
2017-06-19 10:26 436参考链接 http://www.cnblogs.com/men ... -
JDK工具appletviewer详解
2017-06-19 08:25 1131http://www.softown.cn/post/170. ... -
Java rt.jar 源码分析
2017-06-18 10:32 650jdk1.8.0_102 SRC +com +java ...
相关推荐
Java高级JNI教程主要探讨了Java Native Interface(JNI)这一技术,它是Java平台中用于与本地代码交互的重要工具。JNI允许Java程序调用C/C++编写的库,反之亦然,从而实现了Java应用与操作系统底层功能的深度融合。...
本书全面介绍了Java本地接口(JNI),这是连接Java代码与本地语言(如C和C++)编写的应用程序或库的重要桥梁。JNI旨在促进Java与其他编程环境之间的无缝集成,并支持在不同平台上构建高度可移植的应用。 #### 目标...
通过JNI中的Invocation API,可以在本地应用程序中嵌入Java虚拟机 (JVM),从而使得程序员能够在本地代码中调用Java代码。 本教程将涵盖JNI最常见的两种应用场景:从Java程序调用C/C++代码以及从C/C++程序调用Java...
Java本地接口(JNI)是Java平台的一个核心特性,它允许Java代码和其他语言...理解和熟练使用JNI是高级Java开发者的必备技能之一。通过JNI,Java开发者可以充分利用C/C++的高效性能,同时享受Java的跨平台和安全性优势。
- `JNI编程系列之高级篇.doc`: 涉及更复杂的话题,如多线程、内存管理、性能优化等,适合有一定经验的开发者。 - `JNI编程系列之基础篇.doc`: 提供JNI的基础教程,包括环境设置、本地方法声明等。 - `JNI编程系列...
这使得Java应用程序能够利用底层操作系统和硬件的高级功能,而这些功能可能无法用纯Java代码高效地实现。 - **跨平台兼容性** 虽然JNI允许Java代码与本机代码交互,但要注意的是,生成的本机代码通常是特定于平台...
综上所述,"java通过jni调vjoy_vjoy4java"这个项目结合了Java的高级特性与C++的低级别控制能力,实现了在Java应用程序中对虚拟游戏控制器Vjoy的控制。这不仅展示了多语言编程的威力,也体现了在游戏开发和测试中的...
NDK编译和JAVA JNI原生调用是Android开发中的高级技术,主要应用于游戏开发、音视频处理、图像识别等对性能要求较高的场景。 1. NDK简介: NDK提供了一套工具,让开发者可以在Android应用中使用本地代码。它包含了...
JNI(Java Native Interface)是一种允许Java代码调用本地应用程序接口(Native Application Programming Interfaces,如 C 或 C++ 代码)的方法。在某些场景下,我们需要通过 JNI 调用来获取 Java 窗口的句柄,这在...
JNI作为Java与本地代码之间的一个桥梁,使得开发者能够结合两种语言的优点,实现更为灵活和高效的应用程序。 ### 二、JNI调用Java类的具体步骤 #### 1. 准备阶段 首先,我们需要一个简单的Java程序,例如上述例子...
通过JNI中的Invocation API,可以在本地应用程序中嵌入Java虚拟机 (JVM),从而允许程序员从本地代码中调用Java代码。 本教程主要涉及JNI最常见的两种应用场景:从Java程序中调用C/C++代码以及从C/C++程序中调用Java...
JNI的Invocation API可以用于在本地应用程序中嵌入Java虚拟机(JVM),从而允许程序员从本地代码中调用Java代码。该手册主要涉及JNI的两个最常见应用:从Java程序中调用C/C++代码,以及从C/C++程序中调用Java代码。 ...
《深入解析Android高级应用源码——以安卓JNIDemo为例》 在Android开发中,JNI(Java Native Interface)是连接Java与本地代码的重要桥梁,它允许Java代码调用C/C++函数,反之亦然。这个“Android高级应用源码-安卓...
6. JNI的高级特性:JNI还提供了很多高级特性,如本地引用管理、回调Java方法、线程同步等。这些特性使JNI不仅仅局限于基本的本地方法调用,还能实现更加复杂的应用场景。 7. JNI的限制和最佳实践:在使用JNI时,...
在多线程环境中,每个线程都有自己的执行上下文,这意味着当C++线程回调Java方法时,必须确保Java的同步机制正确地应用,以避免数据竞争和其他并发问题。Java中的`synchronized`关键字和`java.util.concurrent`包下...
在"Android高级应用源码-安卓JNIdemo.zip"中,我们可以看到一个示例项目,用于演示如何在Android应用程序中有效地使用JNI。这个压缩包包含了一个基本的JNIdemo应用,它可以帮助开发者深入理解和实践JNI的相关知识。 ...