当前位置:首页 » 编程语言 » java调用c的dll

java调用c的dll

发布时间: 2024-12-30 18:32:11

Ⅰ 现在我有一个DLL文件,我想在java中调用DLL文件中的方法,请问如何实现

一般那种c#的dll是java不能直接调用的,但C\C++可以,你可以使用JNI。比如你要一个 public native void sengMsg(String msg); 来发送信息,先用native关键字声明这个函数,然后再类里面加一个静态块: static { System.loadLibrary("msg"); } 这里的msg是你的后来编译的dll文件名,不是短信猫带的。 然后写其他的函数就可以调用这个方法了,写完后用javac编译,得到class文件,然后用 javah -jni 你的class文件 就会得到一个.h的头文件,用visual studio新建一个dll,把那个.h文件包含进去,用C\C++调用你现有的dll,然后编译得到你的msg.dll,把它复制到你的class文件目录,然后就可以调试运行了。

Ⅱ Java调用c程序,这么简单

1、编写Java代码Hello.java

2、编译Java文件

在命令行窗口输入以下命令进行编译:

3、根据头文件编写cpp文件

注意:先删除h文件中的ifndef、endif、define和注释,然后编写自己的函数代码。

4、安装C/C++编译器

此处不进行演示。

5、编译生成hello.dll文件

找到jdk文件夹下的include文件夹下的jni.h,路径为D:\Java1.8\include。进入win32文件夹,找到jni_md.h文件,路径为D:\Java1.8\include\win32。使用以下命令行代码编译生成hello.dll:

6、编写测试代码

在Hello.java中添加载入hello.dll文件的代码。

编写测试代码:如果需要使用C中的带参数的函数,可以尝试以下步骤:

1、创建类,定义native方法

2、编译Java文件

输入cmd进入命令行窗口,输入以下命令进行编译:

3、编写cpp文件

4、编译生成dll文件

5、编写测试代码

在Hello.java中添加载入hello.dll文件的代码。

编写测试代码,然后运行。

Ⅲ 用Java怎么调用C语言已经编写好的DLL

1.用System.getProperty("user.dir"),获取程序的路径,估计你的应该是 E:\\测试程序不清楚打印一下就可以了。System.getProperty("user.dir") + "\\DLL\\CardAPI"2.unsigned char 用char就可以了unsigned int 用int就可以了,java的int值很大.....C的无符号的记得是65535 unsigned char*、和unsigned int* 这两个是指针,第一个是取1位地址内容的,第二个根据系统而定,一般是取4位地址值的,用java 的String对应,应该可以 。

Ⅳ java怎么引用c

Java调用C语言程序时,主要是涉及到操作系统底层的事件。这种时间Java无法处理,例如用户上传一个视频文件,需要后台给视频加上水印,或者后台分离视频流和音频流。只能通过调用C语言处理。
使用Java如何去调用C语言的接口呢?使用Java的JNI技术。
具体调用步骤如下:
1.首先创建Java文件 HelloJni.java ,并创建native方法。
2.编译Java文件并生成java头文件。
3.创建C语言文件,HelloWorld.c。
4.生成动态链接库文件 libhello.so。
5.设置动态链接库文件的目录。
6.把刚才生成的so文件拷贝到/home/lib下,然后执行class文件。

Ⅳ 如何用Java调用c++生成的dll文件

1
首先要安装好Visual Studio 2010 (其他版本也行)以及JDK(别忘了配置环境变量),然后安装Eclipse。以上软件安装可自行网络,有很多资料。
2
进入正题,首先在Eclipse中新建工程,File->New->Java Project

3
然后右击DllTest,New->package,再右击src目录下的com包,New->Class。这样我们的Java项目就建好了。

4

建好的类文件Dlltest.java里添加代码。主要是导入dll文件的loadlibrary函数和要调用的函数声明shanfei。代码详
见 http://blog.csdn.net/lovesummerforever/article/details/25827199

END
编译Java工程并生成VC要用到的头文件

1

在打开cmd,先进到当前java文件所在的目录,用cd xxx\xxx
命令即可,返回上一级目录用cd..命令(注意后面的俩点)。到当前目录,也就是com文件夹下,输入javac Dlltest.java
指令编译java文件生成Dlltest.class文件,就在com文件夹下。

2

后再回到上级目录,就是com文件夹的上一层src目录(cd..命令),执行javah命令生成头文件(头文件DllTest.h就在com的上层文件
夹src中),此处一定注意执行javah命令(javah -classpath . -jni
com.DllTest,注意点两边的空格)的目录,目录错误就会报错(如上图所示)。
END
建立VC++工程,生成dll文件

1
打开Visual Studio 2010,新建项目,选择win32项目

2
下一步,选择,dll项目,勾选空项目,点击完成,一个空的dll项目就建好了。

3
还记得之前java项目中生成的DllTest.h文件吗?它就是Java为C++项目指定的头文件,java生成头文件,c++里只需要将头文件里声明的函数实现就好了。首先把头文件复制到C++项目的目录下并导入到解决方案的头文件目录下。

4
新建一个cpp文件,文件名最好与头文件一致(不一样也可以),在这个cpp文件中我们要实现头文件中的函数,需要注意的是函数头必须跟DllTest.h中的一样,不能出错。加完代码,会发现包含的头文件jni.h和jni_md.h出错了,下一步就来解决它。

5

个cpp文件中需要包含两个java安装目录下的头文件:jni.h和jni_md.h,分别位于java安装目录下的include文件夹和
include里的win32文件夹内。找到这两个文件,复制到Visual Studio VC 2010
的头文件包含目录中(我的是MicroSoft Visual Studio
10.0\VC\Include,如图)。当然也可以把头文件之直接复制到当前项目的目录下(记得把代码改为#include
“jni.h”),但是这样每次新建项目都得复制粘贴。

6
复制完之后头文件如果还报错,就检查一下VS的包含目录,确认你把头文件复制到VS的默认包含目录中。属性管理器->Debug->User->通用属性->VC++目录->包含目录(include),添加刚才放置头文件的目录即可。

7
解决了上述问题,就可以尝试编译项目生成dll文件了,在debug或release模式下点击生成解决方案,生成成功后到项目目录的debug或release目录下找到相应的dll文件。
END
在Java中调用c++生成的dll文件

1
生成了dll文件,终于到了最后一步。把生成的dll文件复制到Java项目的目录下,注意不是放在com文件夹,也不是src文件夹,是DllTest文件夹内,跟src同级,否则会报错。

2
还有一点需要注意的是,在Java文件内用LoadLibrary函数调用的库名必须与Dll文件名一致,而不是跟java类名一致,这点可以参考java 部分的代码。确认完上述问题,点击运行,稍等片刻就可以看到运行结果,java&dll之旅到此结束。

热点内容
爱奇艺同时能缓存几个 发布:2025-03-11 04:32:58 浏览:926
vn里面的服务器地址是啥 发布:2025-03-11 04:28:47 浏览:692
算法导论翻译 发布:2025-03-11 04:28:43 浏览:148
神奇服务器我的世界 发布:2025-03-11 04:26:50 浏览:182
xt5轻混选哪个配置 发布:2025-03-11 03:55:43 浏览:793
java获取ftp文件列表 发布:2025-03-11 03:53:56 浏览:553
linux查看配置命令 发布:2025-03-11 03:52:13 浏览:916
python怎样 发布:2025-03-11 03:37:45 浏览:436
备忘录手绘在哪里打开安卓 发布:2025-03-11 03:36:03 浏览:846
chrome的缓存文件夹 发布:2025-03-11 03:35:49 浏览:767