Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java jar文件输出上的php exec为空数组_Java_Php_Macos_Xampp - Fatal编程技术网

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

java jar文件输出上的php exec为空数组,java,php,macos,xampp,Java,Php,Macos,Xampp,我买了一台新的mac电脑,并安装了与旧电脑相同的xampp网络服务器。 除了调用java文件外,一切都很好: $str_exec = "java -jar HelloWorld.jar"; exec($str_exec, $output,$result); $output现在是一个空的数组(),并且$result=5 我尝试过绝对路径、对所有内容的权限、在https.conf中更改用户和组(以前我都不需要这么做!) 我发誓除了我现在用的是macbook pro而不是air之外,一切都没有改变

我买了一台新的mac电脑,并安装了与旧电脑相同的xampp网络服务器。 除了调用java文件外,一切都很好:

$str_exec = "java  -jar HelloWorld.jar";
exec($str_exec, $output,$result);
$output
现在是一个空的
数组()
,并且
$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
请帮帮我!!我已经在这里浏览了所有与本期类似的帖子,在互联网上任何地方都找不到任何东西!Gnh

编辑:
不要使用下面的解决方案。正如预期的那样,它最终会崩溃。我的最终坏了,当我试图启动apache服务器时抛出了dyld错误。它根本不会开始。不知道为什么它以前有效,现在无效,但这并不重要。只需抛弃XAMPP,然后按照以下说明启动自己的堆栈:

祝你好运

原始答案:
好的,我有一个有效的解决方案,虽然我知道从长远来看这不是最安全的

事情是这样的:
DYLD\u LIBRARY\u PATH
是一个变量,用于修改动态链接库查找lib的方式。显然,许多开发人员认为您的软件不应该使用这个变量

根据一种解决方案,您可以简单地编辑包含此文件的行。(). 用编辑器打开
xamppfiles/bin/envvars
,删除设置和导出
DYLD\u LIBRARY\u路径的行。然后重新启动apache

然而,这对我来说并不奏效。我还在一个名为
xamppfiles/bin/envvars std
的文件中尝试了同样的方法。还是不行。不过,也许值得一试

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

XAMPP/xamppfiles/lib%sudo mv libjpeg.dylib\u已更改\u libjpeg.dylib
XAMPP/xamppfiles/lib%sudo mv libtiff.dylib\u已更改\u libtiff.dylib
XAMPP/xamppfiles/lib%sudo mv libpng.dylib\u已更改\u libpng.dylib
XAMPP/xamppfiles/lib%sudo mv libiconv.2.dylib\u已更改\u libiconv.2.dylib
XAMPP/xamppfiles/lib%sudo mv libexslt.0.dylib\u已更改\u libexslt.0.dylib
XAMPP/xamppfiles/lib%sudo mv libxml2.2.dylib\u更改了libxml2.2.dylib
XAMPP/xamppfiles/lib%sudo mv libxslt.1.dylib\u已更改\u libxslt.1.dylib

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

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


HTH

我在运行exec(“/usr/bin/php/path/to/file.php”)时遇到同样的问题。我得到的结果是5,但它没有运行。我试了很多东西,但还是头撞墙。同样在macbook air.ok上使用PHP5.3的XAMPP,似乎XAMPP设置了DYLD_LIBRARY_PATH=“/Applications/XAMPP/xamppfiles/lib”,这可能会导致很多问题。还没想好怎么修呢,干得好,肯!我希望这能帮助别人。我没有时间了,只是放弃了xampp,学会了如何在mac上从头开始构建web服务器。花了几个小时,但它的工作非常出色,没有肿胀!是的,我认为抛弃xampp可能是我在调用exec之前运行此答案的更好解决方案。