如何在Windows系統上安裝程序(例如檢查Mozilla Firefox)時如何檢查Java?如何檢查Windows系統上是否安裝了程序
12
A
回答
11
我假設你正在談論Windows。由於Java被認爲是獨立於平臺的語言,如何確定它的平臺是不同的,所以沒有標準的Java API來檢查它。但是,您可以在爬行Windows註冊表的DLL上調用JNI。然後,您可以檢查註冊表中是否存在與該軟件關聯的註冊表項。您可以使用第三方Java API來抓取Windows註冊表:jRegistryKey。
下面是一個SSCCE與jRegistryKey的幫助:
package com.stackoverflow.q2439984;
import java.io.File;
import java.util.Iterator;
import ca.beq.util.win32.registry.RegistryKey;
import ca.beq.util.win32.registry.RootKey;
public class Test {
public static void main(String... args) throws Exception {
RegistryKey.initialize(Test.class.getResource("jRegistryKey.dll").getFile());
RegistryKey key = new RegistryKey(RootKey.HKLM, "Software\\Mozilla");
for (Iterator<RegistryKey> subkeys = key.subkeys(); subkeys.hasNext();) {
RegistryKey subkey = subkeys.next();
System.out.println(subkey.getName()); // You need to check here if there's anything which matches "Mozilla FireFox".
}
}
}
不過,若你打算有一個platformindependent應用程序,那麼你還必須考慮到在Linux/UNIX/MAC/Solaris /其它(換句話說:Java能夠運行的任何地方)檢測FF是否安裝的方法。否則,您必須將其作爲僅限Windows的應用程序進行分發,並在System.getProperty("os.name")
不Windows時執行System#exit()
以及警告。
對不起,我不知道如何在其他平臺FF是否安裝或無法檢測到,所以不要指望一個答案從我爲何;)
0
沒有API,我知道這將允許你這樣做 - 我期望最一般的方法是檢查文件的位置。
其他方法(如檢查Windows註冊表)取決於操作系統。
相關問題
- 1. 如何檢查Java是否安裝在我的Windows系統上?
- 2. 如何使用coldfusion檢查系統上是否安裝了程序
- 3. 如何檢查系統上是否安裝了OLEDB驅動程序?
- 4. 如何檢測Windows系統中是否安裝了DDS?
- 5. 如何檢查在Windows系統上安裝了多少.Net應用程序?
- 6. WPF檢查系統上是否安裝了python
- 7. 如何檢查程序/軟件包是否安裝在操作系統上?
- 8. Inno安裝程序如何檢查系統上是否存在MSVCR100.dll
- 9. 如何檢查Windows CE上是否安裝了SQL Server CE
- 10. 如何以編程方式檢測當前系統上是否安裝了MSMQ?
- 11. 如何檢查我的系統中是否安裝了特定的修補程序(Windows更新)?
- 12. django項目如何檢測系統是否安裝了django?
- 13. 檢查安裝時是否安裝了android應用程序
- 14. 檢查java安裝在Windows系統
- 15. 如何檢查Safari是否安裝了擴展程序?
- 16. 如何我可以檢查是否安裝了應用程序
- 17. 如何檢查之前是否安裝了iPhone應用程序?
- 18. 如何檢查用戶是否安裝了應用程序?
- 19. 如何檢查是否安裝我的系統
- 20. 如何強制安裝程序檢查是否安裝了先決條件?
- 21. 檢查程序列表中是否安裝了程序
- 22. 如何檢查是否安裝了Windows BMC CONTROL-M
- 23. 如何在windows系統上安裝geckodriver
- 24. 如何檢查設備上是否安裝了任何應用程序?
- 25. 檢查Stackable文件系統是否以編程方式安裝
- 26. 爲Windows系統創建安裝程序
- 27. 如何檢查您的手機上是否安裝了應用程序?
- 28. 如何檢查從Q#安裝了Windows QFE /補丁程序?
- 29. 運行安裝程序或檢查程序是否安裝
- 30. 寫檢查包裝是否已經安裝在R系統
+1引入jRegistryKey,謝謝 – stacker