当前位置: 首页 > 知识库问答 >
问题:

java jna 动态库从资源路径载入问题?

越新霁
2023-11-07

开发了一个功能 jar 包,依赖动态库。为了方便分发,动态库打包到了 resources 目录,
用的 Native.loadLibrary 方法载入。

  • 在 IDEA 开发环境下直接运行,正常。
  • 打包 jar 自己运行,正常。
  • 被其他项目以 jar 库形式依赖,其他项目调用接口,报错,找不到动态库。

感觉这应该是一个比较常见的诉求吧,也不知道众多其他第三方库都是怎么处理的。

共有1个答案

谷梁宏恺
2023-11-07

简单研究发现,似乎只能从文件路径进行加载。 https://stackoverflow.com/questions/4113317/load-library-from-jar

所以,解决方案应该是,在运行时 将动态库解压至临时文件目录,在执行完毕后 将临时文件清除即可。

 类似资料:
  • 本文向大家介绍Linux下动态链接库加载路径及搜索路径问题,包括了Linux下动态链接库加载路径及搜索路径问题的使用技巧和注意事项,需要的朋友参考一下 引子 近日,服务器迁移后,偷懒未重新编译nginx的,直接./nginx启动,结果遇到如下问题: “error while loading shared libraries” 这是是因为需要的动态库不在动态链接器ld.so的搜索路径导致。 ld.s

  • 问题内容: 如何从库本身中获取共享库的路径? 换句话说,假设使用来加载库X ,如何从库本身内部访问用于加载所述库的路径? 请注意,我不能首先将这个库加载到该库中。 更新: 这是使用静态变量的方法: 问题答案: 动态链接器实际上搜索几个位置以找到每个动态库。其中包括(来自man ld.so): 环境变量给定的路径 烘焙到二进制文件中的路径将加载条目下的库 缓存文件/etc/ld.so.cache /

  • 本文将介绍 Weex 中 uri(url) 的用法。包括使用图像、字体等资源,处理相对路径以及如何访问本地及打包的资源文件。 Schemes 本地资源 Weex SDK 提供 local scheme 来访问打包在应用程序中的资源,此 scheme 无法在 H5 环境下使用。目前,开发者可以在 image 组件和字体文件中使用本地资源。 在 iOS 中,Weex 会在 bundle resourc

  • 我正在尝试将资源csv文件传递到我的Sprint Boot应用程序使用的jar中。尽管方法获取的资源参数=ReactiveWebContext资源[src/main/Resources/file.csv],但我总是得到该文件不存在的响应 > 在我的项目中,文件位于src/main/resources/file中。csv 正在应用中。属性,我定义: 在config类中: 在内部jar:Config类

  • 本文向大家介绍Spring boot 默认静态资源路径与手动配置访问路径的方法,包括了Spring boot 默认静态资源路径与手动配置访问路径的方法的使用技巧和注意事项,需要的朋友参考一下 在application.propertis中配置 如果自定义访问路径则需要添加WebConfig配置类 在controller中 在浏览器中访问地址 localhost:8081/index 以上所述是小编

  • 问题内容: 在Java中,您可以使用相同的API,但使用不同的URL协议来加载各种资源: 这很好地将资源的实际加载与需要资源的应用程序分离开来,并且由于URL只是一个字符串,因此资源加载也很容易配置。 是否有使用当前类加载器加载资源的协议?这类似于Jar协议,除了我不需要知道资源来自哪个jar文件或类文件夹。 我当然可以使用来做到这一点,但这需要我使用不同的API,因此需要对现有代码进行更改。我希