2013-08-29 18 views
0

我可以檢查是否在使用Java的計算機上安裝了Powershell。我知道如何調用PowerShell腳本,我可以檢查操作系統是否是Windows XP或更高版本,但我更願意檢查是否存在powershell.exe或什麼?支持Powershell在Java中可用

在此先感謝

回答

0

簡單的解決辦法是檢查是否路徑%WINDIR%\System32\WindowsPowerShell\v1.0\powershell.exe存在。對此,有一個方便的方法java.io.File.Exists()

另一種方法是查詢註冊表。如果Powershell出現,將會有關鍵字HKLM\SOFTWARE\Microsoft\PowerShell。天真的方法將通過Runtime.getRuntime().exec()啓動reg.exe並閱讀其輸出。更復雜的方式將基於JNI/JNA,它在Windows上提供對註冊表的訪問。

+0

感謝您的回答。第一個選項可能是最簡單的方法,但是如果用戶安裝了不同的版本呢?......無論版本是否相同,註冊表項總是相同的? – Andy

+0

@Andy不應該是一個問題。 MS意識到硬編碼版本到路徑是愚蠢的,所以所有的Powershell版本[安裝在v1.0目錄](http://stackoverflow.com/questions/5415259/why-is-powershell-2-0-installed-在最相同位置的,PowerShell的-1-0)。 – vonPryz

+0

啊有趣。我很高興MS意識到這一點!感謝您澄清它。無論如何要在Java中獲得'%WINDIR%'? – Andy