注:此处只是临时记录一下,以后有时间的时候再仔细整理。
可以将native方法比作Java程序同C程序的接口,其实现步骤:
1、在Java中声明native()方法,然后编译;
2、用javah产生一个.h文件;
3、写一个.cpp(或.c)文件实现native导出方法,其中需要包含第二步产生的.h文件(注意其中又包含了JDK带的jni.h文件);
4、将第三步的.cpp文件编译成动态链接库文件;
5、在Java中用System.loadLibrary()方法加载第四步产生的动态链接库文件,这个native()方法就可以在Java中被访问了。
以下是手工编写动态链接库的步骤:
1.编写dll函数实现源代码hello.c
#include
int say_hello(char* name)
{
printf( "hello %s\n ", name);
return 1;
}
2.编写dll函数输出定义文件hello.def.
LIBRARY hello
EXPORTS
say_hello @1
3.编译dll源码,生成dll,lib文件.
3.1 新建命令行窗口
3.2 设置PATH ¦ INCLUDE ¦ LIB 3个环境变量.
SET PATH=K:\vcnet\vc7\bin;%PATH%
SET INCLUDE=K:\vcnet\vc7\include;%INCLUDE%
SET LIB=K:\vsnet\Vc7\lib;%LIB%
3.3 编译hello.c
cd K:\Source\dllsample (hello.c和hello.def所在目录)
cl /c hello.c
3.4 链接hello.obj,生成hello.dll,hello.lib两个文件.
link /def:hello.def /dll hello.obj
至此,.dll动态链接库文件生成
分享到:
相关推荐
Java中native方法学习 系统调用
这是本人学习java native过程中的一些程序,学习native的朋友们可以下载一下。
java网页Native微信支付源码,包含工具类,生成支付二维码,支付成功后回调方法。
This library allows developers to access native libraries (DLL and lib.so) from java. You do NOT need to compile a line of C/C++ to use it: it's dynamic !! Now Win32 DLL and shared libraries are ...
NULL 博文链接:https://weick.iteye.com/blog/891613
JNI(java native interface) 简体中文:do.chuan@gmail.com 翻译版 英文版:Addison.Wesley.Java.Native Interface 希望对大家有帮助...
JAVA本地方法:native方法1
JNA java native access
org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z Hadoop源码_NativeIO.java
JNA(Java Native Access )提供一组Java工具类用于在运行期动态访问系统本地库(native library...开发人员只要在一个java接口中描述目标native library的函数与结构,JNA将自动实现Java接口到native function的映射。
初次遇见 native是在 java.lang.Object 源码中的一个hashCode方法: public native int hashCode(); 为什么有个native呢?这是我所要学习的地方。所以下面想要总结下native。 一、认识 native 即 JNI,Java...
THIS book covers the Java™ Native Interface (JNI). It will be useful to you if you are interested in any of the following: • integrating a Java application with legacy code written in languages such...
主要为大家详细介绍了微信支付java版本之Native付款,感兴趣的小伙伴们可以参考一下
微信NATIVE扫码支付JAVA实现
Java Native Interface Specification release 1.1 pdf版
使用C/C++实现Java的Native方法接口(JNI)/ JNI编程(C/C++) 代码实例
JNI Framework 4.1.0 version. Java Native Access
JNI是Java Native Interface的缩写,Java Native Interface(JNI)标准是java平台的一部分,它允许Java代码和其他语言写的代码进行交互。JNI一开始是为了本地已编译语言,尤其是C和C++而设计的,但是它并不妨碍你使用...
与前面传的java 本地代码访问注册表是一个文件,操作时,忘了传C代码,补上。
The definitive JNA reference (including an overview ...JNA provides Java programs easy access to native shared libraries without writing anything but Java code - no JNI or native code is required......