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

资源路径中未找到JNA本机支持(/com/sun/JNA/linux-arm/libjnidispatch.so)

元修然
2023-03-14
root@pisces:/opt/TellstickReplay# java -version
java version "1.8.0-ea"
Java(TM) SE Runtime Environment (build 1.8.0-ea-b36e)
Java HotSpot(TM) Client VM (build 25.0-b04, mixed mode)
root@pisces:/opt/TellstickReplay#
root@pisces:/opt/TellstickReplay# echo $LD_LIBRARY_PATH
/opt/lib/jna
root@pisces:/opt/TellstickReplay# echo $CLASSPATH
/usr/lib/jna

所以..有人知道如何正确地让Raspberry PI平台上的JNA支持工作吗??拜托,我感到非常沮丧,很快就放弃了解决这个问题的希望…

共有1个答案

柴阳云
2023-03-14

Libjnidispatch.so在您的系统中的哪里?如果它不在您的系统上,JNA将尝试从指定的资源路径从JNA.jar解压缩它。如果它也不在那里,您将得到UnsatisfiedLinkError

建议您尽可能在系统上显式安装libjnidispatch.so;jna.jar绑定主要是为了方便在更常见的桌面平台上使用。

linux-arm.jar包含libjnidispatch.so的最新构建,但是只有WebStart知道如何从这样的jar自动加载本机。如果将其解压缩到/opt/lib/jna(或LD_LIBRARY_PATH上的其他地方),则应避免链接错误。

 类似资料:
  • 问题内容: 我有一个小型测试程序,可以在JBuilder 6调试器中完美运行。当我制作一个.jar文件并运行它时,出现错误 我已经搜索了驱动器,但是没有jnidispatch.dll。 该程序是 问题答案: 您显然已经将JNA的类与您自己的jar文件合并,但是省略了其本机支持。确保将原始文件中的 所有 文件(不仅仅是类文件)都复制到新目的地,并保留其原始路径。 具体来说,您的jar文件 必须 包含

  • 我有RHEL7.3,在其中我构建了tesseract,并且我能够执行我的jar。现在我有了另一个具有相同RHEL配置的系统,我想执行相同的jar,但我不想在这个系统上构建tesseract,所以我从以前构建的tesseract系统中选择/usr/lib64/libtseract.so和/usr/lib64/liblept.so文件,并将这些so文件放在新的RHEL7.3系统中/usr/lib64/

  • 我试图通过JNA在eclipse中使用GStreamer。Processing为此提供了一个库,如果我试图通过从eclipse中以applet的形式运行sketch来运行代码,那么一切都很好,但是当我试图执行整个应用程序时,我会得到一个警告列表(在相机第一次调用时),如下所示 这条路似乎不对... 我从来没有写过需要jna的库,我试图使用这个库,如果可能的话,有什么建议吗?

  • 我正在eclipse RCP项目中使用JNA。 我遵循片段风格。 xxx。dll直接位于a.b.c.d.win32中。win32。x86片段项目。 错误:线程“main”java中出现异常。lang.UnsatifiedLink错误:无法加载库“xxx”。dll”:在资源路径中找不到本机库(win32-x86/xxx.dll) 我需要一些帮助。

  • 开发了一个功能 jar 包,依赖动态库。为了方便分发,动态库打包到了 resources 目录, 用的 Native.loadLibrary 方法载入。 在 IDEA 开发环境下直接运行,正常。 打包 jar 自己运行,正常。 被其他项目以 jar 库形式依赖,其他项目调用接口,报错,找不到动态库。 感觉这应该是一个比较常见的诉求吧,也不知道众多其他第三方库都是怎么处理的。

  • JNA还加载正确的库。 这里有人知道为什么不起作用吗?是因为我使用的是带有清单的jar应用程序文件吗? 有人有类似的问题吗?