Java,检查PATH环境中是否存在可执行文件

时间:2013-03-20 12:56:43

标签: java environment-variables

我可以使用System.getenv("PATH")打印路径。 然后我可能会遍历这些路径并使用File来检查文件是否存在。

Java有更快的方法吗?

3 个答案:

答案 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而不是检查。遗憾。