2014-09-02 31 views
0

如何確定在Java中啓動進程的路徑是否可執行?換句話說:確定文件是否表示可執行進程

new java.io.File("ls")  .canExecute(); // false (!) 
new java.io.File("/bin/ls").canExecute(); // true 

我如何工作第一線的故障檢測「LS」可以安全地開始作爲一個過程周圍(而不必弄清楚它的絕對位置)?

回答

2

如果路徑是簡單的嘗試PATH搜索或使用File.canExecute()在PATH搜索

+0

所以'的java .lang.System.getenv.get( 「PATH」)'?這與'Runtime.exec'試圖解決簡單路徑的方式是一樣的嗎?這是跨平臺嗎? – 2014-09-02 18:10:31

+0

是的。這是你想要的。它不是跨平臺的。在不同的平臺上,您可以使用不同的分隔符獲得字符分隔符是'File.pathSeparator' – talex 2014-09-02 18:14:40

1

相反,你可以開始Process和捕獲異常(沒有測試雖然)

Process process = new ProcessBuilder("ls").start(); 
相關問題