windows和linux下,用jna调用C++库
2017-09-20 23:28
253 查看
C++库,在windows下为dll文件,linux下为so文件。
需要导入的jar:jna.jar
一、在windows下:
dll文件 放到和操作类相同的包下面(com.bm.reley)下面
二、在linux下调用so
so文件直接可以放到工程目录下面
最后:我调用的是usbreley操作文件,链接为:
http://blog.csdn.net/shuihuaxiang/article/details/78046955
需要导入的jar:jna.jar
一、在windows下:
dll文件 放到和操作类相同的包下面(com.bm.reley)下面
package com.bm.reley; import com.sun.jna.Library; import com.sun.jna.Native; public class JNATestDll { public interface TestJnaLib extends Library { String filePath = TestJnaLib.class.getResource("").getPath().replaceFirst("/","").replaceAll("%20"," ")+"MyDLL.dll"; TestJnaLib INSTANCE = (TestJnaLib)Native.loadLibrary(filePath, TestJnaLib.class); public int add(int x, int y); public int lock(); public int unlock(); } public static void main(String[] args) { TestJnaLib jnaDemo=TestJnaLib.INSTANCE; int c = jnaDemo.add(1, 4); int b=jnaDemo.lock();//打开 System.out.println(c+"+"+b); } }
二、在linux下调用so
so文件直接可以放到工程目录下面
package myjava.jna.test; import com.sun.jna.Library; import com.sun.jna.Native; public class HelloJna { //定义接口CLibrary,继承自com.sun.jna.Library public interface CLibrary extends Library { //定义并初始化接口的静态变量 CLibrary Instance=(CLibrary)Native.loadLibrary("JNALibusb",CLibrary.class); int lock(); int unlock(); } public static void main(String[] args) { CLibrary cbLibrary=CLibrary.Instance; int lock=cbLibrary.lock(); System.out.println(lock); } }
最后:我调用的是usbreley操作文件,链接为:
http://blog.csdn.net/shuihuaxiang/article/details/78046955
相关文章推荐
- windows/linux + java + jna + dll/so 调用C/C++
- windows和linux环境下java调用C++代码-JNI技术
- Java框架JNA调用C方法(windows链接库dll文件、linux链接库so文件)
- 动态调用动态库方法 c/c++ linux windows
- windows和linux环境下java调用C++代码-JNI技术
- windows和linux环境下java调用C++代码-JNI技术
- windows和linux环境下java调用C++代码-JNI技术
- 动态调用动态库方法 c/c++ linux windows
- 动态调用动态库方法 c/c++ linux windows
- [Android NDK]命令行编译C++代码(JNI)的方式(windows和linux通用)
- Windows C++调用SQLite
- C++ 获取linux和windows系统的用户名
- Linux C调用C++库
- Linux C调用C++库
- linux和windows下,C/C++的sleep函数
- linux下使用SWIG实现Python调用C++ sdk读取相机图片
- 在linux下调用webcam(同样适用windows)
- c/c++:动态库 静态库 linux/windows 例子 (转)
- linux-c++调用shell
- Win下JNA调用C/C++导出的DLL