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' 未被识别为内部或外部命令的主要内容,如果未能解决你的问题,请参考以下文章
ipython 未被识别为内部或外部命令 (pyspark)