gpt4 book ai didi

java - Mac OS X 狮子 : Error occurred during initialization of VM Unable to load native library: libjava. jnilib

转载 作者:搜寻专家 更新时间:2023-10-30 23:00:40 32 4
gpt4 key购买 nike

在 BASH 中运行“java -version”会产生正确的结果。但是,当我在 apache 上的 PHP 脚本中使用 shell_exec() 命令尝试相同的命令时,我得到:

“VM 初始化期间发生错误无法加载 native 库:libjava.jnilib”

我已经尝试了解决此问题的所有常用方法(更改符号链接(symbolic link)、取消设置环境变量)。

我也很确定 BASH 和脚本都使用相同的二进制文件。 “which java”产生相同的结果。

关于如何让“java -version”工作的任何想法?

最佳答案

您可以通过将 DYLD_LIBRARY_PATH 环境变量设置为该 shell exec 的一部分,向 OSX 提示在哪里可以找到该库。这与他们使用相同的二进制文件无关,而是在用完 apache 时该二进制文件是否可以找到它链接到的库。您可以通过运行查看二进制链接的库:

otool -L <binary>

您将看到 libjava.jnilib 所在的位置并将该路径添加到您的 DYLD_LIBRARY_PATH。您可能需要为许多库添加路径。

祝你好运!

免责声明:围绕 DYLD_LIBRARY_PATH 的使用有各种阵营,它可能(像许多事情一样)存在安全风险。然而,由于在这种情况下 shell_exec() 用于执行二进制文件并且在执行二进制文件时没有使用绝对路径,因此 DYLD_LIBRARY_PATH 是最不安全的问题。

关于java - Mac OS X 狮子 : Error occurred during initialization of VM Unable to load native library: libjava. jnilib,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6850624/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com