将动态库打包在Jar包并调用的方法
来源:互联网 发布:如何编写app软件 编辑:程序博客网 时间:2024/06/05 20:51
首先应该知道,无法直接加载Jar包中的动态库(dll、so)
实现方法:使用输入输出流将动态库写在别的目录进行调用
<span style="font-size:18px;"> //getResourceAsStream以JAR中根路径为开始点 private synchronized static void loadLib(String libName) throws IOException { String systemType = System.getProperty("os.name"); String libExtension = (systemType.toLowerCase().indexOf("win")!=-1) ? ".dll" : ".so"; String libFullName = libName + libExtension; //动态库的输出目录 可自行设置 String nativeTempDir = System.getProperty("java.io.tmpdir"); InputStream in = null; BufferedInputStream reader = null; FileOutputStream writer = null; File extractedLibFile = new File(nativeTempDir+File.separator+libFullName); if(!extractedLibFile.exists()){ try { // “/”代表Jar包的根目录 in = SecretKeyKeeper.class.getResourceAsStream("/" + libFullName); if(in==null) in = SecretKeyKeeper.class.getResourceAsStream(libFullName); SecretKeyKeeper.class.getResource(libFullName); reader = new BufferedInputStream(in); writer = new FileOutputStream(extractedLibFile); byte[] buffer = new byte[1024]; while (reader.read(buffer) > 0){ writer.write(buffer); buffer = new byte[1024]; } } catch (IOException e){ e.printStackTrace(); } finally { if(in!=null) in.close(); if(writer!=null) writer.close(); } } System.load(extractedLibFile.toString()); }</span>
0 0
- 将动态库打包在Jar包并调用的方法
- 动态添加jar包并调用jar包里面的方法
- Spring Boot 将Freemarker打包到其他jar并在项目中引用的简单方法
- Maven自动生成可运行jar包并将依赖的jar包一起打包
- JAVA实现动态加载jar包并调用其中的方法
- AndroidStudio将项目打包成jar包的简单方法
- 用eclipse 将ZXing库 打包成jar包方法:
- 通过eclipse 将ZXing库 打包成jar包方法
- 在IDEA中如何将Spring boot项目打包成可执行的jar包并发布到linux服务器
- Java项目部署 : 将Java项目打包成jar包,并指定指定的main方法执行
- 将程序打包成jar包在控制台调用同时传入参数
- android中打包带有Activity以及资源文件的jar包在工程中调用的方法
- 将main方法打成jar包,并引用第三方的maven jar包
- 将main方法打成jar包,并引用第三方的maven jar包
- 将main方法打成jar包,并引用第三方的maven jar包
- Android 将Android项目打包成aar文件并在其他项目中引用,打包成jar包
- JAVA加载JAR包并调用JAR包中某个类的某个方法
- 将java项目打包成jar包并生成可独立执行的exe文件
- PPPOE交互分析
- C++专项练习错题分析(1)
- WCF:如何将net.tcp协议寄宿到IIS
- 彻底学会使用epoll(四)——ET的写操作实例分析
- hdu 5867
- 将动态库打包在Jar包并调用的方法
- SQL Server 存储过程嵌套处理 错误提示:INSERT EXEC 语句不能嵌套
- 分布式服务框架 Dubbo
- IOS在子线程中使用定时器,将定时器添加至RunLoop中
- c++ find 在容器中查找元素
- 彻底学会使用epoll(五)—— ET模式下的注意事项
- Notificationt通知栏使用详解
- Message Flood 【排序--二分查找】
- 数据结构——13 队列链表描述