Czy istnieje standardowy sposób, aby to zrobić? Rozumiem, że może to być zależne od platformy. Nasz produkt jest teraz obsługiwany tylko w systemie Windows - więc przypuszczam, że właśnie to mnie interesuje właśnie teraz. Jedyne, co mogę wymyślić, to albo przeskanować rejestr, albo zindeksować system plików. Skanowanie systemu plików wygląda na to, że może to zająć naprawdę dużo czasu - a rejestr może być niewiarygodny. Czy powinienem zrobić oba? Jakieś inne sugestie? Próbowałem szukać API, żeby to zrobić bez powodzenia.Programowo ustal, jakie JDK/JRE są zainstalowane na moim pudełku.
Odpowiedz
Najpierw zacznę od wyszukania zmiennej środowiskowej JAVA_HOME (i prawdopodobnie JDK_HOME, chociaż jest to o wiele mniej powszechne), a następnie określenia, która to wersja i czy jest to JDK czy JRE.
Po tym sprawdzeniu, czy nie występują wspólne lokalizacje. Znajdź katalog plików systemowych systemu (nie zakładaj, że jest to C: \ Program Files, mimo że jest to 99,5% czasu) i szukaj wspólnych lokalizacji instalacji pod tym (np. Java).
Nie wykonałbym wyczerpującego wyszukiwania.
Warto zapytać: czy naprawdę potrzebujesz znaleźć JDK w ten sposób? Czy nie możesz po prostu spytać użytkownika, z jakiego JDK chce skorzystać, sugerując prawdopodobnie te łatwe, które już znalazłeś?
Prawdopodobnie wybrałabym kombinację szukania kluczy rejestru zainstalowanych w Javie i przeszukiwania domyślnych lokalizacji do instalacji (co nie powinno zająć zbyt dużo czasu).
Alternatywnym podejściem byłoby połączenie małej aplikacji Java, która drukuje różne szczegóły, takie jak działająca maszyna JVM.
System.out.println(System.getProperty("java.version"));
Inne właściwości here
To tylko informuje wersję JRE wykonującą kod - nie co JDK/JRE są zainstalowane – Jonik
Niestety, źle zrozumiałem pytanie. Możesz użyć rejestru i jeśli nic nie znaleziono, zapytaj użytkownika. Kluczem jest HKEY_LOCAL_MASHINE/SOFTWARE/JavaSoft/Java Development Kit –
- 1. Jak mogę się dowiedzieć, jakie biblioteki Python są zainstalowane na moim Macu?
- 2. Jak wykryć, czy zainstalowane są Jquery i Jquery UI oraz jakie wersje są zainstalowane?
- 3. Jak zalogować się do SonarQube w moim lokalnym pudełku
- 4. WiX Spal - Określić, jakie elementy są już zainstalowane
- 5. Dlaczego komponenty altanowe są zainstalowane na wwwroot
- 6. Ustal, czy na stronie produktu programowo w Magento
- 7. Jakie są te ciekawe właściwości, które znalazłem w moim sqlConnection?
- 8. Umieść końcówki boków na pudełku
- 9. Jak sprawdzić poprawki Oracle są zainstalowane?
- 10. Gdzie są zainstalowane pliki zestawu sterowników Windows?
- 11. Ustal, czy biblioteka C jest zainstalowana na systemie Unix
- 12. emulacja Androida na wirtualnym pudełku w zaćmieniu
- 13. Łączenie oznacza na pudełku z linią (ggplot2)
- 14. Jakie czcionki są dołączone (tj. Zainstalowane domyślnie), z którymi systemami operacyjnymi?
- 15. Jak ustawić ostrość (i wyświetlić klawiaturę) na moim EditText programowo
- 16. Jakie źródła entropii są dostępne na heroku?
- 17. Jakie są odpowiedniki TortoiseSVN na Mac OSX?
- 18. Jakie są zakresy akceleratora na iPhonie?
- 19. Jakie są praktyczne ograniczenia wątków na procesor?
- 20. jak sprawdzić, czy BLAS i ATLAS są już zainstalowane
- 21. UITapGestureRecognizer programowo wywołać kranu moim zdaniem
- 22. Ustal, czy programowo jest włączone tworzenie kopii zapasowej całego systemu.
- 23. Jakie są rzeczywiste zalety wzoru gościa? Jakie są alternatywy?
- 24. Zainstalować programowo certyfikat X509 w moim przypadku
- 25. Jakie są zalety coroutines?
- 26. Jakie są zalety VistaDB
- 27. Jak sprawdzić, czy asp.net 3.5 sp1 i asp.net mvc są zainstalowane na serwerze?
- 28. Python: ustal, czy wszystkie elementy listy są tym samym obiektem.
- 29. Jakie są domyślne repozytoria?
- 30. Jakie są zalety NSBinaryStoreType?
Cletus można bronić, dlaczego nie zrobi wyczerpującego poszukiwania? Intuicyjnie zgadzam się tutaj, ale szukam mocnych powodów. –
Wyczerpujące wyszukiwanie wymagałoby przeszukiwania wszystkich dysków twardych dla plików java.exe lub javac.exe (zakładając okna), co może zająć dużo czasu. –
Sugerujemy ograniczenie wyszukiwania do C: \ Program Files \ i zmiennej środowiskowej% PATH% oprócz dwóch zmiennych wymienionych powyżej. –