Java的本地调用jni。调用c为例。在Windows下调用.dll文件;在Linux下调用.so文件。
1 Java部分:写一个Java调用的方法。
注意:动态库的名字的写法:
Windows环境:
loadLibrary("libname");
注意调用的时候要用全名,扩展名可以不写。
Linux环境:
loadLibrary("name");
注意调用的时候不要用全名,要去掉前面的lib和后面的扩展名。
编译Java文件。然后用Javah 生成.h文件给c程序用。
注意:如果Java文件又包的话,生成的.h是不一样的。.h中的函数名会带上包名。例如:cn/common/testlib.Java,生成的.h中的函数名前面会是:cn_common_testlib。如果没有包,生成的.h中的函数名就没有cn_common_
2 写好c程序,编译生成.dll或.so
vc可以直接生成,或用命令行加参数的方法生成。
3 .dll和.so放置的位置:libname.dll/libname.so
Windows环境:
loadLibrary("libname");
注意调用的时候要用全名,扩展名可以不写。
在环境变量设置PATH=%libname.dll的位置%,这样Java即可找到自己定义的库了。
Linux环境:
loadLibrary("name");
注意调用的时候不要用全名,要去掉前面的lib和后面的扩展名。
在环境变量设置:修改/etc下的profile文件加入这两句:
LD_LIBRARY_PATH=libname.so的位置
export LD_LIBRARY_PATH
或者直接放在%Java_HOME%/jre/lib/i386/下面。
分享到:
相关推荐
jna 3.3.0 java 调用 dll/so
完整演示使用JNI开发JAVA和C++交互的例子,本示例提供了在Windows和linux上的编译脚本。请参考JNI的相关文章,如有疑问可留言
JAVA使用JNative包调用DLL文件
JAVA调用DLL JAVA调用DLLJAVA调用DLLJAVA调用DLLJAVA调用DLLJAVA调用DLL
亲测可用,java 成功调用dll函数。包含调用回调函数,springboot版本。最近由于公司业务需要,要调用dll文件,用JNA调用。
假如有一个现有的 .dll/.so 文件,假如使用 JNI 技术调用,我们首先需要另外使用 C 语言写一个 .dll/.so 共享库,使用 SUN 规定的数据结构替换 C 语言的数据结构,调用已有的 ? dll/so 中公布的函数。 然后再在 Java...
Java调用动态链接库 Java 调用 DLL 源码
java调用so,java调用dll也是同样的代码
java调用c++ dll代码
1、Labview生成Dll文件 2、Java通过Jnative第三方Jar包调用Labview生成的DLL文件 3、Java在Windows系统调用Labview生成的Dll的说明 有JNative的使用说明 直接下载,根据使用说明可以直接使用。
Java调用dll示例,Java命名方法,C++实现生成DLL供JAVA调用
java调用本地dll的几种方法性能对比测试。 JNA消耗的总时间(ms):5406 bridj消耗的总时间(ms):984 JNI消耗的总时间(ms):47 包含c++源码和java源码,部署和使用方法。在win7和winxp下测试用过。 部分源码是...
这是java采用jni技术调用dll(动态链接库的一个demo),不需要任何改动,自己可以用,很适合初学者
是Java 调用DLL动态库框架,功能强大,告别往日的JNI,只需定义接口,就可以方便调用DLL库,为开发人员省了不少事。
在Java中调用DLL(Dynamic Link Library)文件,可以使用Java的本地方法接口(JNI,Java Native Interface)来实现。JNI允许Java程序与本地代码进行交互,从而实现跨平台的功能。
一个用于在java中调用dll动态代码库的开源组件,JNative-1.3.2
java调用dll 文件的必备jar包和环境,java调用dll 文件的必备jar包和环境
java调用dll接口,备份供大家察看,谢谢大家共享。
Java通过JNI调用DLL动态库,亲测试编写
最近一段时间单位在做一个Web项目,工程师用JAVA语言,需要公用人员信息,统一用户名和密码,原有的平台中是用C#语言开发的,在网上查找解决方法,通过JAVA调用C#的DLL文件实现。网上资料很多,自己整合总结了一下,...