java - java jar文件输出上的php exec是空数组

标签 java php macos xampp

我买了一台新的 Mac,并安装了与旧 Mac 相同的 xampp Web 服务器。 一切都很好,除了我调用 java 文件时:

$str_exec = "java  -jar HelloWorld.jar";
exec($str_exec, $output,$result);

$output 现在是一个空的 array(),并且 $result = 5

我已经尝试过绝对路径、对所有内容的权限、更改 https.conf 中的用户和组(我以前都不需要这样做!)

我发誓除了我现在使用的是 macbook pro 而不是 air 之外,什么都没有改变。这些文件始终与我们的主服务器文件匹配。错误日志中唯一出现的是:

dyld: Symbol not found: __cg_jpeg_resync_to_restart
  Referenced from: /System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO
  Expected in: /Applications/XAMPP/xamppfiles/lib/libJPEG.dylib
 in /System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO

请帮忙!!我已经在此处浏览了与此问题所有类似的主题,但在互联网上的任何地方都找不到任何内容!生长激素

最佳答案

编辑:
不要使用下面的解决方案。正如预期的那样,它最终会破裂。我的终于坏了,当我试图启动 apache 服务器时抛出 dyld 错误。它根本不会开始。不知道为什么它以前有效而现在无效,但这并不重要。只需放弃 XAMPP,并按照以下说明启动您自己的堆栈:http://jason.pureconcepts.net/2012/10/install-apache-php-mysql-mac-os-x/

祝你好运!

原始答案:
好的,我有一个可行的解决方案,尽管我知道这不是最安全的。

这是怎么回事: DYLD_LIBRARY_PATH是一个 var,它修改动态链接库查找 libs 的方式。显然许多开发人员认为您的软件不应该使用这个变量。 XAMPP 可以。

根据一种解决方案,您可以简单地编辑掉包含该文件的行。 (http://www.pdflib.com/fileadmin/pdflib/pdf/support/PDFlib-in-PHP-HowTo.pdf)。 打开xamppfiles/bin/envvars使用编辑器删除设置和导出 DYLD_LIBRARY_PATH 的行.然后重新启动apache。

但是,这对我不起作用。我还在名为 xamppfiles/bin/envvars-std 的文件中尝试了相同的操作.仍然没有用。不过可能值得一试。

问题是 XAMPP 库与 mac osx 库冲突。所以我只是(有效地)删除了 XAMPP 库。当然这破坏了另一个库,但我继续删除(希望是多余的)XAMPP 库直到它起作用。这是我必须做的:

XAMPP/xamppfiles/lib% sudo mv libjpeg.dylib _<em>changed</em>_libjpeg.dylib XAMPP/xamppfiles/lib% sudo mv libtiff.dylib _<em>changed</em>_libtiff.dylib XAMPP/xamppfiles/lib% sudo mv libpng.dylib _<em>changed</em>_libpng.dylib XAMPP/xamppfiles/lib% sudo mv libiconv.2.dylib _<em>changed</em>_libiconv.2.dylib XAMPP/xamppfiles/lib% sudo mv libexslt.0.dylib _<em>changed</em>_libexslt.0.dylib XAMPP/xamppfiles/lib% sudo mv libxml2.2.dylib _<em>changed</em>_libxml2.2.dylib XAMPP/xamppfiles/lib% sudo mv libxslt.1.dylib _<em>changed</em>_libxslt.1.dylib

在我将每个库移动到一个无法找到的名称后,我重新运行了脚本。它会在另一个库上出错,我会移动它。在其中一些之后,它停止了。在我的 XAMPP 和 Apache 部署中,一切似乎仍然运行良好。

更重要的是,我现在可以运行 exec("/usr/bin/php -v");成功!

HTH

关于java - java jar文件输出上的php exec是空数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21242000/

相关文章:

java - RSA 密码术在 Java Card 小程序中返回 "ILLEGAL_USE"

java - 加载第一行带有标题的 CSV 文件时,有没有办法自动检测字段/列顺序?

php - 没有从数据库获取数据

macos - 在 mac os x 10.6.7 上卸载 python 3.2

objective-c - 被调用方法中的异步调度

java - Android 基于 ListView /导航的应用程序

java - 我需要第一次登录数据库并确定他们是否迟到。 java

php - L5.6 - 数据透视表上的关系

php - PHP在单次请求中分配的内存是不是总是在最后释放?

c++ - Mac Qt C++ 上的 lldb