在阅读了该网站上与我遇到的完全相同的问题相关的一些帖子后,我发现它们都没有给我一个成功的结果:
如何使用 PHP 从 Web 服务器运行 jar
从网站上的 PHP 脚本运行 Java 类文件
为什么 exec('java -jar file.jar') 在浏览器上不起作用,但在命令行上起作用?
我使用的是 Windows Server 2008 R2 数据中心,64 位,它是来自 AWS 的 EC2 实例。
我用来在 php 文件中运行 jar 的命令是 exec,它适用于任何 phyton 脚本和普通 .exe 程序。但当涉及到一个罐子时,它就没有任何作用。
这是我的代码(我的 jar 需要 5 个参数):
$script = "java -jar scripts/IDW.jar 5 none 2 values_grid values";
$result = exec($script, $output);
if ($result) {
print_r($output);
}
else {
echo "Failed";
}
echo "<br/>Result: ". $result;
我得到的结果是:
Failed
Result:
当我在控制台上运行 jar 时,它运行得很好,但不是从 PHP 运行,这意味着我在上面的 PHP 代码中传递了正确的参数值。
Java 版本:1.7.0_51 和 PHP 版本:5.4.26
我非常感谢对此的任何评论。
您也可以使用 shell_exec、system() 和其他函数 pctl 函数进行检查。这些功能可能被禁用,因此在执行之前检查它们或者您也可以使用它
function execInBackground($cmd) {
if (substr(php_uname(), 0, 7) == "Windows"){
pclose(popen("start /B ". $cmd, "r"));
}
else {
exec($cmd . " > /dev/null &");
}
}
发现更多细节here.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)