从php中检测Web服务器上是否安装了Java

4

有没有可能从一个php脚本中检测服务器上是否安装了java(如果我可以运行带有java的exec()命令)?

谢谢,

本杰明

2个回答

2
如果您可以运行exec,那么您应该能够使用您选择的cli检测工具,如which javalocate java等。我相信有很多方法可以做到这一点(我提出的两种方法不一定是最好的)。

2
如果文件系统中有名为“javascript”或类似名称的文件,则“locate java”可能会返回误报。 “which”是更好的选择,但它取决于Java二进制文件是否在系统路径中。 我不确定这两个选项都很好。 - AJ.
@AJ:+1 - 我忘记了这些命令的注意事项,因为我通常不会在脚本的上下文中使用它们来确保某些东西的存在。但我的观点是,如果他有访问exec的权限,那么这里有各种潜在的途径可供选择,这是其中两种可能性。你有什么建议吗? - prodigitalson
如果您可以访问exec,哪个选项的资源消耗较少? - benjisail
"java -version" 是什么意思? - zmf
@zmf:那就意味着用户调用php时必须在路径中包含“java”,但实际上可能并不是这样。为了解决这个问题,你需要知道“java”的完整路径,这也意味着你已经知道“java”存在。 - prodigitalson

2
我用过这个:
$result = exec('command -v java >/dev/null && echo "yes" || echo "no"');

如果Java命令存在,$result应该是yes,否则应该是no。如果你在Windows上运行,你需要一个不同的命令。也许像这样:
$result = exec('java -version > NUL && echo yes || echo no');

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接