相关疑难解决方法(0)

Java 1.6在后台Symfony任务调用时中断

我有一个Symfony任务,生成一些文件调用exec到jar,然后解析输出.jar从命令行运行正常,任务从命令行运行正常.

问题:

我在基于表单提交的操作中调用该任务.我有动作在后台启动一个新的php进程来运行任务,无论它现在生成的页面是什么.

当它进入java调用时,比如说exec(java -version); 它输出这个:

Error occurred during initialization of VM
Unable to load native library: libjava.jnilib
Run Code Online (Sandbox Code Playgroud)

我觉得它与我在启动任务时调用php的方式有关,但我很遗憾为什么它不会像我使用命令行时那样拥有相同的库.

如何从"后台"Symfony任务中运行java?

备注:

它曾经毫无障碍地工作,直到我将mamp从1.9.6升级到2.0.3.

我看过: 破解Java Mac 10.6 但是因为我可以从命令行运行它,这似乎是一个不同的问题.

我还看了shell_exec()权限被拒绝的执行symfony任务命令,但我不认为权限是这里的问题.

更新:

我已经将问题缩小到MAMP并从浏览器转到php.

<?php
echo exec("java -version")
...
Run Code Online (Sandbox Code Playgroud)

从命令行调用时工作,但通过浏览器打开php文件时不工作.因此配置MAMP的方式导致了问题.

这是环境信息:

  • 变量值
  • SHELL/bin/bash
  • TMPDIR/var/folders/YH/YH + uW3hDHZyxQ5AiUtr0T ++++ TI/-Tmp- /
  • Apple_PubSub_Socket_Render/tmp/launch-3rr9ZI/Render
  • 用户myuser
  • COMMAND_MODE unix2003
  • SSH_AUTH_SOCK/tmp/launch-zinaMI/Listeners
  • __CF_USER_TEXT_ENCODING 0x1F5:0:0
  • PATH/usr/bin:/ bin:/ usr/sbin:/ sbin
  • PWD /
  • HOME/Users/myuser
  • SHLVL 2
  • DYLD_LIBRARY_PATH/Applications/MAMP/Library/lib:
  • LOGNAME myuser
  • DISPLAY /tmp/launch-FYrw70/org.x:0
  • _/Applications/MAMP/Library/bin/httpd

Dyld似乎出现在这里.我需要找到一种方法来摆脱mamp的环境.

解决了

我找到了解决方案.这似乎是一个黑客,但它的工作原理.我会在这里发布它只是因为其他人遇到同样的问题.

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

如果MAMP设置为/ …

php java symfony1 mamp

28
推荐指数
1
解决办法
2800
查看次数

破解Java Mac 10.6

一些背景:

在使用Macports的Mac OS X 10.6上,我已经DYLD_LIBRARY_PATH设置了我的.bash_profile.

问题:

当我运行时,java -version我收到此错误:

初始化VM时出错
无法加载本机库:libjava.jnilib

通过一个有用的论坛帖子,我发现问题是我的'/ opt/local/lib'目录中的一些文件由于DYLD_LIBRARY_PATH我设置而导致麻烦.

当我从'/ opt/local/lib'中删除以libgif,libjpeg,libpng和libtiff开头的文件时,问题就消失了,`java -version'可以工作,但依赖这些文件的端口会中断.

任何人都知道我可以保留文件的方式,仍然让java正常工作?可能设置java路径,我不太确定如何做,我的所有尝试都失败了.

谢谢.

java macos macports osx-snow-leopard

8
推荐指数
2
解决办法
5714
查看次数

从PHP exec调用java

我在PHP中执行以下操作:

exec('java -jar "/opt/flex3/lib/mxmlc.jar" +flexlib "/opt/flex3/frameworks" MyAS3App.as -default-size 360 280 -output MyAS3App.swf');
Run Code Online (Sandbox Code Playgroud)

当我从命令行运行它时,它运行正常并在一两秒内完成.

当我从PHP exec运行此命令时,java进程占用100%的CPU并且永远不会返回.

有任何想法吗?

我也尝试用'/ usr/bin/java -Djava.awt.headless = true'运行上面的命令.

我正在运行Mac OS X 10.5.5,MAMP 1.7,PHP 5.2.5

php java apache-flex exec

6
推荐指数
1
解决办法
2万
查看次数

标签 统计

java ×3

php ×2

apache-flex ×1

exec ×1

macos ×1

macports ×1

mamp ×1

osx-snow-leopard ×1

symfony1 ×1