2013-03-20 98 views
10

我可以使用System.getenv("PATH")打印路徑。 然後我可能會遍歷這些路徑並使用File來檢查文件是否存在。Java,檢查PATH環境中是否存在可執行文件

Java中有更快的方法嗎?

+1

對於它的價值,我不知道不認爲有比你建議的更好的方法 – Miquel 2013-03-20 13:00:10

+0

@Nix是SCALA中的問題嗎?我在問JAVA花花公子 – w00d 2013-03-20 13:03:10

+0

@ w00d你是否看到下面的答案和這個問題的答案有什麼相似之處?此鏈接也在同一主題上http://stackoverflow.com/questions/2439984/how-to-check-if-a-program-is-installed-on-system。花些時間和自己研究'夥計。' – Nix 2013-03-20 13:04:10

回答

-1

您可以使用Runtime.getRuntime().exec("command");中的try ... catch部分。如果應用程序不在PATH中,您將得到一個例外。

[編輯]

但..這將執行檢查的應用程式。抱歉。

+1

這不會有實際執行命令的副作用嗎? – 2013-03-20 13:01:45

3

Java中有更快的方法嗎?

在性能方面,沒有。

就編碼工作而言,可能沒有。當然,我不知道任何第三方Java庫將搜索命令搜索路徑,以查看是否存在可執行文件。

不幸的是,在Windows上搜索可執行文件有點棘手,因爲您必須考慮各種類型的可執行文件...基於文件後綴。即使在Linux/Unix上,您也需要使用新的Java 7文件屬性API來確定候選文件是否具有設置的執行權限。我知道一些命令可以以無害的方式運行,例如它們可以支持輸出版本字符串的選項/參數或一些幫助信息。但是,這隻適用於特定情況, m也知道在Unix/Linux上有一個名爲「whereis」的內置shell命令,可以告訴你在搜索路徑中是否存在具有給定名稱的可執行命令。)