JNI初步学习
来源:互联网 发布:win10系统开机优化 编辑:程序博客网 时间:2024/05/16 05:12
1、 编写java程序:这里以CTestHello 为例。
代码1:
class CTestHello{
public native void displayHelloWorld();//所有native关键词修饰的都是对本地的声明
static
{
//载入本地库 ,此处为动态加载 ,库的文件名可能为"libhello.dll"或者"libhello.so"
//如果" hello" 库还依赖于其他动态库,同样需要在此处声明,最好是按库生成依赖的先后顺序来加载,
}
public static void main(String[] args)
{
new CTestHello().displayHelloWorld();
}
}
2、编译CTestHello ,使用命令 javac CTestHello.java,生成 CTestHello.class文件。
3、使用命令javah CTestHello,为CTestHello.java生成 CTestHello.h的jni头文件。
4、以CTestHello.h为头文件建立hello.dll的C++ dll工程,
【注意】需要将该工程添加 jdk 的 jin目录下的 win32
和include 包含路径,并且在hello.cpp头部添加 #include <jni.h> 和 #include "CTestHello.h"
在hello.cpp中实现 CTestHello.h 提供的函数声明。
5、编译hello.dll的C++ dll工程,将生成的 hello.dll拷贝到与CTestHello.class文件同级的目录。
6、使用命令java CTestHello,即可调用hello.dll的代码。
代码1:
class CTestHello{
public native void displayHelloWorld();//所有native关键词修饰的都是对本地的声明
static
{
//载入本地库 ,此处为动态加载 ,库的文件名可能为"libhello.dll"或者"libhello.so"
//如果" hello" 库还依赖于其他动态库,同样需要在此处声明,最好是按库生成依赖的先后顺序来加载,
//如果依赖的库不声明,jni调用将加载失败。
}
public static void main(String[] args)
{
new CTestHello().displayHelloWorld();
}
}
2、编译CTestHello ,使用命令 javac CTestHello.java,生成 CTestHello.class文件。
3、使用命令javah CTestHello,为CTestHello.java生成 CTestHello.h的jni头文件。
4、以CTestHello.h为头文件建立hello.dll的C++ dll工程,
【注意】需要将该工程添加 jdk 的 jin目录下的 win32
和include 包含路径,并且在hello.cpp头部添加 #include <jni.h> 和 #include "CTestHello.h"
在hello.cpp中实现 CTestHello.h 提供的函数声明。
5、编译hello.dll的C++ dll工程,将生成的 hello.dll拷贝到与CTestHello.class文件同级的目录。
6、使用命令java CTestHello,即可调用hello.dll的代码。
- JNI初步学习
- java JNI 初步学习
- java初步jni学习
- jni 初步学习
- JNI学习初步
- JNI学习系列——初步认识JNI
- JNI初步
- JNI初步
- JNI初步
- JNI初步
- JNI初步
- JNI初步 -- Hello JNI示例
- android之JNI初步
- [ java ] JNI初步!
- Android jni初步
- android jni编程初步
- [转载] JNI初步
- JNI初步使用
- 【爱生活】关元穴能有效调理身体
- python +numpy,theano,cifar 2
- 嵌入式根文件系统制作中几个重要文件详解
- 多线程的那点儿事(之原子锁)
- 淘宝蝌蚪的SVN免费对外开放了
- JNI初步学习
- vxworks下格式化flash
- 【POJ】1001 Exponentiation
- Repeater
- Java IO 实现简单文件读与写
- 用innosetup4制作“写注册表”一例:极点五笔V3.5版
- 谷歌C++代码规范--翻译学习1
- vim-水木
- 我的程序生涯(一)