我可以使用System.getenv("PATH")
打印路径。
然后我可能会遍历这些路径并使用File
来检查文件是否存在。
Java有更快的方法吗?
答案 0 :(得分:3)
Java有更快的方法吗?
在表现方面,没有。
就编码工作而言,可能没有。当然,我不知道任何第三方Java库将搜索命令搜索路径以查看是否存在可执行文件。
不幸的是,在Windows上搜索可执行文件有点棘手,因为您必须根据文件后缀考虑各种类型的可执行文件。即使在Linux / Unix上,您也需要使用新的Java 7文件属性API来确定候选文件是否具有设置的执行权限。
(我知道某些命令可以以无害的方式运行;例如,它们可能支持输出版本字符串的选项/参数,或者某些帮助信息。但是,这仅适用于特定情况。我是还知道在Unix / Linux上,有一个名为“whereis”的内置shell命令可以告诉你搜索路径上是否存在具有给定名称的可执行命令。)
答案 1 :(得分:2)
你的方法会奏效。
我建议在路径中的每个目录上使用File.listFiles(FileFilter filter)方法。这将使搜索每个目录更简单。
答案 2 :(得分:1)
您可以在Runtime.getRuntime().exec("command");
部分中使用try ... catch
。如果应用不在PATH
,您将获得例外。
<强> [编辑] 强>
但是..这将执行app而不是检查。遗憾。