Windows平台下JNI简单示例
2011-10-25 06:32
197 查看
参考
http://java.sun.com/docs/books/jni/html/start.html#769
创建一个文件夹
用于存放源码和输出文件
创建编译Java
1、用记事本创建java源码如下(一开始不要用eclipse)
3、编译之
产生class文件
生成头文件
执行javah命令
生成了头文件
制作DLL
1、用VS创建一个Win32的DLL工程
2、把前一步生成的HelloWorld.h加入工程(最好是拷贝到DLL所在工程,否则还要加附加头文件路径)
3、设定附加头文件路径
4、实现Native方法
5、编译
运行
1、把DLL拷贝到system32下(需要把JNINative.dll改名为HelloWorld.dll,才能被该Java调用。这点是例子不严谨)
2、在class所在目录下,用java HelloWorld运行
遗留问题
1、如何允许DLL在任意目录下
2、如果Java类在包中,如何编译运行通过(实际操作中,在eclipse中没问题,在命令行有错)
http://java.sun.com/docs/books/jni/html/start.html#769
创建一个文件夹
用于存放源码和输出文件
创建编译Java
1、用记事本创建java源码如下(一开始不要用eclipse)
class HelloWorld { private native void print(); public static void main(String[] args) { new HelloWorld().print(); } static { System.loadLibrary("HelloWorld"); } }2、保存为HelloWorld.java
3、编译之
产生class文件
生成头文件
执行javah命令
生成了头文件
制作DLL
1、用VS创建一个Win32的DLL工程
2、把前一步生成的HelloWorld.h加入工程(最好是拷贝到DLL所在工程,否则还要加附加头文件路径)
3、设定附加头文件路径
4、实现Native方法
#include <jni.h> #include <stdio.h> #include "HelloWorld.h" JNIEXPORT void JNICALL Java_HelloWorld_print(JNIEnv *env, jobject obj) { printf("Hello World!\n"); return; }
5、编译
运行
1、把DLL拷贝到system32下(需要把JNINative.dll改名为HelloWorld.dll,才能被该Java调用。这点是例子不严谨)
2、在class所在目录下,用java HelloWorld运行
遗留问题
1、如何允许DLL在任意目录下
2、如果Java类在包中,如何编译运行通过(实际操作中,在eclipse中没问题,在命令行有错)
相关文章推荐
- linux和windows跨平台应用程序的简单示例
- Windows平台开启多线程简单示例(C++)
- 一个简单的JNI示例
- 单线程与多线程的简单示例(以Windows服务发短信为示例)
- (转)Thrift在Windows及Linux平台下的安装和使用示例
- CaysnPrinter Windows平台开发包接口说明文档及打印示例程序 - PrinterLibs For Windows_20160927
- JNI简单示例
- eX.osip3.0.1在Windows下编译方法及简单UA示例
- Linux(RedHat) 中多平台之间的文件共享简单示例
- jni程序开发简单示例和说明(eclipse + Microsoft Visual Studio 2010)
- CaysnPrinter - Windows平台开发包打印示例程序及接口说明文档 - 20170531
- 一个简单的读写锁(Windows 平台)
- Windows平台上的JNI学习--->MyJni.java
- EasyRTMP实现的一套简单、高效、易用的全平台(Windows/Linux/ARM/Android/iOS)RTMP直播推送库
- windows平台下实现《简明python教程》第10章的文件备份示例四
- 使用WTL写Windows程序简单示例
- osip及eXosip的编译及开发方法 和 eX.osip3.0.1在Windows下编译方法及简单UA示例
- sipot eX.osip3.0.1在Windows下编译方法及简单UA示例
- 两台电脑来简单搭建Windows平台下的MySQL集群