PHP:'java' 未被识别为内部或外部命令

Posted

技术标签:

【中文标题】PHP:\'java\' 未被识别为内部或外部命令【英文标题】:PHP: 'java' is not recognized as an internal or external commandPHP:'java' 未被识别为内部或外部命令 【发布时间】:2016-11-11 05:07:47 【问题描述】:

我正在尝试使用 exec 从 php 运行 .jar 应用程序:

exec('java -jar parser.jar $inputstring 2>&1', $output);

我可以让它在 cmd 上运行,并且 java -version 返回,所以我安装了 java。这似乎是一个路径问题,但我束手无策。

我尝试指定完整路径,添加 C:\Program Files (x86)\Java\jdk1.8.0_91\bin;到系统变量,使用 shell_exec,无济于事。我犯了同样的错误。

任何帮助将不胜感激。

【问题讨论】:

显示您如何添加完整路径。里面有空格。如果您没有引用路径,例如shell_exec('"C:\Program files\...."),那么您将尝试运行名为c:\program.exe 的程序,参数为files\.... 我有:shell_exec('"C:\Program Files (x86)\Java\jdk1.8.0_91\bin\java.exe" -jar parser.jar $inputstring 2>&1');如果我没有 2>&1 它是空白的。有了它,我得到了相同的“java”无法识别错误。 2>&1 将标准错误重定向到标准输出,这就是您收到错误消息的原因。 shell_exec 只返回标准输出,所以你永远不会看到错误信息。 您需要转义反斜杠。 shell_exec ('"C:\\Program Files\\... 尝试回显$PATH环境变量,看看java是否真的在你的路径中。 PHP 脚本是否与您的命令行测试在同一用户下运行? 【参考方案1】:

使用这个....

exec('java -jar parser.jar '.$inputstring.'2>&1', $output);
or
shell_exec("java -jar parser.jar $inputstring 2>&1 $output");
or
string exec ( 'java -jar parser.jar'  [, array &$output [, int &$return_var ]] )

【讨论】:

以上是关于PHP:'java' 未被识别为内部或外部命令的主要内容,如果未能解决你的问题,请参考以下文章

Keytool 未被识别为内部或外部命令

ipython 未被识别为内部或外部命令 (pyspark)

'appletviewer'未被识别为内部或外部命令,可操作程序或批处理文件

android' 未被识别为内部或外部命令

CMD: '■m' 未被识别为内部或外部命令

VS2012:'nmake' 未被识别为内部或外部命令