【问题标题】:Java System.loadLibrary does not lookup in /usr/lib/x86_64-linux-gnu/ folder for libraryJava System.loadLibrary 不在 /usr/lib/x86_64-linux-gnu/ 文件夹中查找库
【发布时间】:2018-01-01 09:29:43
【问题描述】:

Oracle Java 1.8 不查找 /usr/lib/x86_64-linux-gnu/ 文件夹来加载本机库。

我已经安装了 OpenSSL 库,它安装在 /usr/lib/x86_64-linux-gnu/ 文件夹中,但是在使用 System.loadLibrary() 从 Java 加载时,只有查找路径是

/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib

我是否缺少一些配置?更新 env LD_LIBRARY_PATH 有效但首选编程方法以避免额外步骤。

编辑

同意。程序化黑客不是可持续的选择。运行本机可执行文件会从arch /usr/lib/x86_64-linux-gnu/ 文件夹加载库。 Java 不在 arch 文件夹中查找。

【问题讨论】:

  • 为什么要使用程序化方法?如果你在另一个系统上运行,位置可能会改变,不是吗?
  • 是的,确实如此,但在传送 jar 文件时设置 LD_LIBRARY_PATH 可能不可行。
  • 您认为为什么需要加载 OpenSSL 库?当 SSL 和 JCE 内置到 JRE 中?
  • 具有 GCM 模式的 Java 8 存在性能问题。 stackoverflow.com/questions/25992131/…

标签: java c++ linux wildfly


【解决方案1】:

我认为编程方式是个坏主意。 你将在其他平台上做什么???

我看到了解决这个问题的两种方法

  1. 使用 LD_LIBRARY_PATH
  2. 在标准目录中为您的库创建符号链接

【讨论】:

  • 让我换个说法,我的意思是程序化是为了避免额外的配置步骤。基本上,Java 是如何跳过 arch 文件夹中的查找的?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-10-14
  • 1970-01-01
  • 2012-11-27
  • 2022-09-28
  • 1970-01-01
  • 2019-02-23
  • 2017-12-27
相关资源
最近更新 更多