前几天我发表了this thread,并在Unix上成功解决了这个问题 现在我搬到了Windows,我遇到了同样的问题。 我需要从web应用程序执行命令。它必须执行存储在系统中的.jar。我查看了Google,发现了一些我需要做的更改。
执行命令的功能是:
<?php
if($_POST["name"] == "")
echo "name is empty";
else{
$path = $_POST["name"];
//$command = 'DISPLAY=:0 java -jar '.$path'; -> Used in Unix
//$command = 'java -jar ../../../../simulaciones/tanqueCalentamiento.jar';
$command = 'java -jar ..\..\..\..\simulaciones\tanqueCalentamiento.jar';
//system($command);
exec($command);
}
?>
评论是我尝试过的不同选项。 $path
是争论的焦点,但决定直接提出道路,对我的问题进行澄清。
我是否需要一种“技巧”,就像我为Unix做的那样? Thaanks提前
答案 0 :(得分:2)
我使用的那个:
function _exec($cmd)
{
$WshShell = new COM("WScript.Shell");
$oExec = $WshShell->Run($cmd, 0,false);
error_log($cmd);
return $oExec == 0 ? true : false;
}
/!\如果您的应用程序有界面,并且您使用的是vista或7,则您的服务器无法作为服务运行!
答案 1 :(得分:0)
你刚开始'java'。这意味着Java可执行文件(java.exe)必须存在,并且必须能够执行。由于未指定路径,因此它必须位于%PATH%环境变量中的目录中。
要进行测试,只需启动cmd并输入java<enter>
即可。如果java被执行,你至少知道你将安装java并且可以启动。如果没有,请检查是否有java并指定java可执行文件的正确路径。
您还可以从命令行运行.jar
以查看它是否有效。如果它像这样工作,它也可能在PHP中工作。
答案 2 :(得分:0)
在windows vista中,7(我不知道是否在其他人中),xampp存在问题。
apache不会停止,无论你做什么,甚至关闭电脑。至少对我来说,解决方案是:
始终以管理员身份启动/停止:
路径\ XAMPP \ xampp_start
路径\ XAMPP \ xampp_stop
右键单击:以管理员身份运行。
通过这种方式,apache正确完成,我可以运行我的命令而不再有任何问题
我希望这会有所帮助 http://drupal.org/node/224342