0

我已经到处寻找答案,看来我需要将我的 $DYLD_LIBRARY_PATH 设置为知道我丢失的库在哪里的东西,但我不知道那可能是什么。

我的机器是 Mac OS X,我在 MAMP 下运行 PHP5。我有一个用于我创建的可执行文件的 shell 命令,它在终端中运行良好,但在我的 PHP 应用程序中根本不起作用。我收到以下错误:

$ Error occurred during initialization of VM Unable to load native library: libjava.jnilib

我想我只需要找到那个库并将目录添加到上面列出的变量中,但我似乎找不到它。我在这里先向您的帮助表示感谢!

4

2 回答 2

0

正如Broken Java Mac 10.6提到的 DYLD_LIBRARY_PATH 必须取消设置。不知道为什么,在 Unix 系统上似乎需要它,而不是 MacOSX。

如果 MAMP 设置为 /Applications/MAMP/Library/lib 以下是禁用它的方法:编辑 /Applications/MAMP/Library/bin/envvars 并注释掉以下行

DYLD_LIBRARY_PATH="/Applications/MAMP/Library/lib:$DYLD_LIBRARY_PATH" export DYLD_LIBRARY_PATH 使它看起来像这样:

DYLD_LIBRARY_PATH="/Applications/MAMP/Library/lib:$DYLD_LIBRARY_PATH"

导出 DYLD_LIBRARY_PATH

这应该可以解决问题,java 1.6 可以正常运行。

有关更多信息,请查看此处:Java 1.6 Broken when called by background Symfony task

于 2014-05-30T07:59:19.397 回答
0

这也适用于我在另一个环境中:

<?php
  exec('export DYLD_LIBRARY_PATH=""; java -version');
?>

参考:
- https://drupal.org/node/1257654
-从 PHP exec 调用 java

于 2014-05-30T09:01:28.723 回答