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

动态加载本机库

冯奇思
2023-03-14
myjar.jar
 - lib/
   - <somelib>.<libext>
 - <package>
   - Foo.class

共有1个答案

山鸿彩
2023-03-14

不,如果不首先提取库,就无法从jar文件内部加载库,您需要至少将库提取到tmp文件夹中,以便能够使用例如:

system.load(“path/to/libabc.so”)

目前在java中不可能从内存或zip文件加载库。加载库的方法是native void classloader.nativelibrary.load(String name)java.lang.classloader在内部使用库的name来跟踪加载的库,因此当前您不能使用任何不同于实际文件的东西作为本机库加载,因为它不符合当前的机制。

由于本机库的加载是在本机代码的帮助下完成的,因此答案取决于是否有方法在C代码中加载本机库:dlopen从内存?

理论上是可以做到的,但是由于它是特定于平台的,并且有许多方面需要考虑和解决,所以它不是用Java实现的,在C中也不是一个标准的和/或容易的事情。

目前在java中,没有办法做到这一点,如果有人创建这样一个本地库来做到这一点,这可能会改变,但目前我还不知道任何这样的库。

 类似资料:
  • 问题内容: 我正在尝试编写一个将从用户的串行端口读取的Java小程序。为此,我将Java Comm API 与RXTX库结合使用。我已经成功地通过本地Java应用程序读取了数据,但似乎无法在applet中进行相同的操作。问题在于RXTX库是一个本机库,我还没有找到在Java小程序中加载该库的方法。我发现了两篇有趣的文章(在Applets中使用JNI引用了本文),但是这两篇文章已有10多年的历史了,

  • 1.4* 自动加载脚本机制 前文已提及,vim 脚本主要用 :source 命令加载,然而很多情况下又不需要手动执行 该命令。只要将脚本放在特定的目录下,vim 就有个机制自动搜寻并加载的机制。 Vim 插件搜索目录 首先要知道有 &runtimepath (常简写为 &rtp)这个选项。它与系统的环境变量 $PATH 有点类似,就是一组有序的目录名称,用于 Vim 在许多不同情况下搜寻 *.vi

  • 问题内容: 我正在尝试为我的网站创建页面主题功能。我想使用单独的CSS文件在页面上动态加载相应的主题。 我正在使用此代码: 效果很好,但是如果CSS文件未加载,它不会返回任何信息。 加载时,有什么方法可以捕捉吗?也许通过使用ajax? 问题答案: 加载CSS文件(或其任何其他更改)时,Internet Explorer会触发一个事件。其他浏览器不会触发任何事件,因此您将必须手动检查样式表是否已加载

  •  说明 调用方法: $.f2e.util.getScript(url,cache,fn); 函数说明: 加载js,并提供相关回调 参数说明: 参数名 类型 说明 备注 url string 地址 无 cache boolean 缓存 无 fn function 回调函数 无 脚本 <script> $.f2e.util.getScript(url,true,function(){

  • 关于Xamarin形式指南(http://developer.xamarin.com/guides/cross-platform/xamarin-forms/localization/)对于本地化,我们创建Resx并为每个平台构建自定义本地化类。这一部分非常简单明了。 我的问题是,我需要在应用程序中发送所有本地化的文件,还是有一种方法,当用户在我的应用程序中更改语言时,我从服务器下载所需的Resx

  • 初始: 可以使用,但 vite 有警告: 移动文件并改为: vite 没有警告了,但浏览器控制台报错: 或是 不移动 文件改为: 都不行,这是为什么? 如何处理?