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