我遇到了一个与 PHP shell_exec() 相关的非常不寻常的问题。好吧,我实际上要执行外部java程序。我做这样的测试
<?php
$command = 'C:\\Program Files\\Java\\jdk1.6.0_35\\bin\\java.exe';
$val = shell_exec($command);
echo('command:' . $command);
echo('<BR>');
echo('val:' . $val);
?>
一切都很好,但是当我尝试这样做时
<?php
$command = 'C:\\Program Files\\Java\\jdk1.6.0_35\\bin\\javac.exe';
$val = shell_exec($command);
echo('command:' . $command);
echo('<BR>');
echo('val:' . $val);
?>
没有产出。真的很奇怪。我也尝试过使用 exec() 但没有什么不同。下一件奇怪的事情是当我尝试这个时
<?php
$command = 'C:\\Program Files\\Java\\jdk1.6.0_35\\bin\\java.exe -version';
$val = shell_exec($command);
echo('command:' . $command);
echo('<BR>');
echo('val:' . $val);
?>
我使用确切的 java.exe,但添加了一个 -version 作为额外选项。没有输出出现。
java.exe 和 javac.exe 在命令行中执行时都会给出输出。我使用 Win 7 64 位、XAMPP 1.8.1(Apache 2.4.3、PHP 5.4.7)和 JDK 1.6 更新 35。
我在这里搜索了这个东西,并试图实现对相关问题的回答,但他们没有解决。
与此相关的任何解释,.? 感谢您的帮助 :)