Eclipse中java项目调用DLL
2014-08-02 11:31
423 查看
java工程路径:D:\workspace
vc 工程路径D:\workspace_c
JDK路径:D:\jdk1.6.0_23
1、创建java项目
在Eclipse中创建java工程jnidemo,如图1所示:
图1
当保存TestNative.java文件时,Eclipse会自动在jnidemo项目的bin目录下编译生成TestNative.class文件,如图2所示:
图2
2、生成.h文件
使用命令行方式,进入Eclipse下工程目录的bin目录,然后执行javah com.hik.wyx.TestNative,编译出头文件,如图3所示:
图3
此时会在bin目录下生成com_hik_wyx_TestNative.h文件,如图4所示:
图4
3、新建VC工程
在vc6.0环境中创建一个native的DLL工程,如图5、6所示:
图5
图6
点击“完成”按钮,之后新建一个TestNative.cpp文件,如图7所示:
图7
TestNative.cpp文件内容:
#include"com_hik_wyx_TestNative.h"
JNIEXPORTvoid JNICALL Java_com_hik_wyx_TestNative_sayHello(JNIEnv *env,jobject obj){
printf("Hello World !\n");
return;
}
4、添加JNI文件路径
在工具—选项中,设置平台及目录,在目录中添加JDK的include与win32文件夹,方便以后的JNI使用(这里的jni.h文件位于Java安装目录下的JDK1.6.023\include,jni_md.h文件位于JDK1.6.0 23\include\win32下,因为jni.h文件引用了jni_md.h文件,所以必须将这两个文件置于你的VC工程下;或者直接放到VC安装目录的include目录下,方便以后使用)。如图8所示:
图8
5、生成DLL
编译TestNative.cpp在VC项目工程下的Debug目录下生成native.dll文件,如图9所示:
图9
6、Java工程设置DLL路径
将native.dll文件拷贝到Java工程bin目录下,如图10所示:
图10
7、在eclipse环境变量中增加nativelibrary location支持
点击Java项目右键—Build Path—ConfigureBuild Path,如图11所示:
图11
图12
如图12所示,增加native library location支持,也就是将具体的DLL文件加入到Java项目中。
注:步骤7的另外一种方式,就是在步骤6中将native.dll文件拷贝到JDK安装路径的bin目录下。(考虑Java项目的迁移,建议使用将DLL拷贝到Java项目工程路径下的方式)
8、测试DLL调用
在TestNative.java文件中加入测试语句,进行DLL调用。
publicstaticvoid main(String[]
args) {
System.loadLibrary("native");
new TestNative().sayHello();
}
测试结果:
vc 工程路径D:\workspace_c
JDK路径:D:\jdk1.6.0_23
1、创建java项目
在Eclipse中创建java工程jnidemo,如图1所示:
图1
当保存TestNative.java文件时,Eclipse会自动在jnidemo项目的bin目录下编译生成TestNative.class文件,如图2所示:
图2
2、生成.h文件
使用命令行方式,进入Eclipse下工程目录的bin目录,然后执行javah com.hik.wyx.TestNative,编译出头文件,如图3所示:
图3
此时会在bin目录下生成com_hik_wyx_TestNative.h文件,如图4所示:
图4
3、新建VC工程
在vc6.0环境中创建一个native的DLL工程,如图5、6所示:
图5
图6
点击“完成”按钮,之后新建一个TestNative.cpp文件,如图7所示:
图7
TestNative.cpp文件内容:
#include"com_hik_wyx_TestNative.h"
JNIEXPORTvoid JNICALL Java_com_hik_wyx_TestNative_sayHello(JNIEnv *env,jobject obj){
printf("Hello World !\n");
return;
}
4、添加JNI文件路径
在工具—选项中,设置平台及目录,在目录中添加JDK的include与win32文件夹,方便以后的JNI使用(这里的jni.h文件位于Java安装目录下的JDK1.6.023\include,jni_md.h文件位于JDK1.6.0 23\include\win32下,因为jni.h文件引用了jni_md.h文件,所以必须将这两个文件置于你的VC工程下;或者直接放到VC安装目录的include目录下,方便以后使用)。如图8所示:
图8
5、生成DLL
编译TestNative.cpp在VC项目工程下的Debug目录下生成native.dll文件,如图9所示:
图9
6、Java工程设置DLL路径
将native.dll文件拷贝到Java工程bin目录下,如图10所示:
图10
7、在eclipse环境变量中增加nativelibrary location支持
点击Java项目右键—Build Path—ConfigureBuild Path,如图11所示:
图11
图12
如图12所示,增加native library location支持,也就是将具体的DLL文件加入到Java项目中。
注:步骤7的另外一种方式,就是在步骤6中将native.dll文件拷贝到JDK安装路径的bin目录下。(考虑Java项目的迁移,建议使用将DLL拷贝到Java项目工程路径下的方式)
8、测试DLL调用
在TestNative.java文件中加入测试语句,进行DLL调用。
publicstaticvoid main(String[]
args) {
System.loadLibrary("native");
new TestNative().sayHello();
}
测试结果:
相关文章推荐
- eclipse上java项目通过jni调用dll动态库
- Eclipse中java项目引用dll库的路径设置(System.loadLibrary()调用Dll路径问题)
- Java下(Eclipse中)调用DLL动态链接库的方法
- eclipse中的java工程项目如何引用外部jar包和dll动态链接库?
- eclipse调试java调用matlab程序的7.17dll找不到的问题
- java调用dll或ocx控件(在SWT、web、java项目中调用)
- Java调用C++动态链接库dll,有详细过程。VS2015+Eclipse以及失败解决方案
- JavaWeb项目中调用dll动态链接库
- Eclipse中java工程中引用dll库的路径设置 && System.loadLibrary()调用Dll路径问题
- [2014.1.31] Eclipse、MinGW、JNI编写C++生成dll, Java端调用的完整示例(附java.lang.UnsatisfiedLinkError解决方法)
- Eclipse、MinGW、JNI编写C++生成dll, Java端调用的完整示例(附java.lang.UnsatisfiedLinkError解决方法)
- Eclipse、MinGW、JNI编写C++生成dll, Java端调用的完整示例(附java.lang.UnsatisfiedLinkError解决方法)
- eclipse中的java工程项目如何引用外部jar包和dll动态链接库?
- Java调用C++动态链接库dll,有详细过程。VS2015+Eclipse以及失败解决方案
- [2014.1.31] Eclipse、MinGW、JNI编写C++生成dll, Java端调用的完整示例(附java.lang.UnsatisfiedLinkError解决方法)
- JNI-Java(Eclipse)调用dll/so
- 【转载整理】eclipse 开发c/c++、Java使用JNI调用C程序、生成64位dll动态链接库
- Java调用DLL技术调研
- Eclipse中使用JNI调用C++ build的dll
- Jawin –Java/Win32互动项目:可调用DLL及COM的调用项目