在Mac OSX上使用MAMP的PHP中的shell_exec()给出了VM初始化期间发生的错误无法加载本机库:libjava.jnilib

时间:2013-03-26 22:16:03

标签: java php mamp

我一直在寻找答案,看来我需要将我的$ DYLD_LIBRARY_PATH设置为知道遗失库的位置,但我不知道它可能是什么。

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

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

我想我只需要找到该库并将dir添加到上面列出的变量中,但我似乎无法找到它。感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

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

如果MAMP设置为/ Applications / MAMP / Library / lib,那么如何禁用它:编辑/应用程序/ MAMP / Library / bin / envvars并注释掉以下行

DYLD_LIBRARY_PATH = “/应用/ MAMP /库/ lib中:$ DYLD_LIBRARY_PATH” 导出DYLD_LIBRARY_PATH 所以它看起来像这样:

DYLD_LIBRARY_PATH = “/应用/ MAMP /库/ lib中:$ DYLD_LIBRARY_PATH”

导出DYLD_LIBRARY_PATH

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

有关详情,请点击此处:Java 1.6 Broken when called by background Symfony task

答案 1 :(得分:0)

这对我来说也适用于另一种环境:

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

参考文献:
- https://drupal.org/node/1257654
- Calling java from PHP exec