springboot动态加载native类库
2017-07-05 00:00
696 查看
##序
有些时候需要使用到本地类库来实现一些功能,比如在linux下使用jni去访问so库文件,这个时候就需要涉及库文件的加载。本文介绍一下如何动态加载库文件,即把库文件放到工程项目里头,方便工程的可移植性,然后在运行时去加载。
##动态加载
将so文件放在工程的resources目录下
##使用
有些时候需要使用到本地类库来实现一些功能,比如在linux下使用jni去访问so库文件,这个时候就需要涉及库文件的加载。本文介绍一下如何动态加载库文件,即把库文件放到工程项目里头,方便工程的可移植性,然后在运行时去加载。
##动态加载
public class LibLoader { public static void loadLib(String libName) { String resourcePath = "/" + libName; String folderName = System.getProperty("java.io.tmpdir") + "/lib/"; File folder = new File(folderName); folder.mkdirs(); File libFile = new File(folder, libName); if (libFile.exists()) { System.load(libFile.getAbsolutePath()); } else { try { InputStream in = LibLoader.class.getResourceAsStream(resourcePath); FileUtils.copyInputStreamToFile(in,libFile); in.close(); System.load(libFile.getAbsolutePath()); } catch (Exception e) { e.printStackTrace(); throw new RuntimeException("Failed to load required lib", e); } } } }
将so文件放在工程的resources目录下
##使用
public class DemoJniClient{ public native int helloWorld(String arg); static { LibLoader.loadLib("demo.so"); } }
相关文章推荐
- SpringBoot+ZooKeeper+ZKUI+Drools 实现应用配置中心及业务规则动态加载
- springBoot动态加载资源文件
- Spring Boot 动态加载
- springboot idea 动态加载 angular-cli js
- SpringBoot中动态加载(热部署)
- spring中动态加载配置文件
- spring动态创建,加载,使用多数据源
- Spring与Hibernate动态建表及动态加载映射文件(无需SessionFactory Rebuild)
- C#中动态加载卸载类库
- 使Spring.NET的IOC容器支持动态加载的程序集
- 使用spring 实现真正多数据源的动态加载及动态切换
- spring动态加载hibernate
- 反射动态加载类库时出现未能加载文件或程序集的解决方法
- spring动态创建,加载,使用多数据源
- Java基础---Java---基础加强---类加载器、委托机制、AOP、 动态代理技术、让动态生成的类成为目标类的代理、实现Spring可配置的AOP框架
- Spring动态创建,加载,使用多数据源
- Spring动态加载、编辑数据源
- hibernate+spring动态加载hibernate映射文件
- spring+webwork的动态加载实现osgi的插件思想
- Spring动态加载Hibernate映射文件