Zajmuję się programowaniem, które sprawdza, jakie oprogramowanie zostało zainstalowane, ale aby to zrobić, muszę wiedzieć, czy OS jest 32-bitowym czy 64-bitowym systemem operacyjnym. Próbowałem System.getProperty ("os.arch"); ale potem przeczytałem, że to polecenie pokazuje nam tylko bycie JDK/JRE, a nie sam system operacyjny. Jeśli możesz mi powiedzieć, jak się dowiedzieć, z jakiego systemu operacyjnego jest używany (Windows 7, Mac OS, Ubuntu, itp.), To byłoby po prostu niesamowite. C:Jak mogę sprawdzić zgodność mojego systemu operacyjnego za pomocą Java? (J2SE, nie os.arch)
Odpowiedz
System.getProperty("os.arch");
powinny być dostępne na wszystkich platformach, zobacz Java System Properties Tutorial aby uzyskać więcej informacji.
Ale 64-bitowe platformy Windows będą leżeć na JVM, jeśli jest to 32-bitowa maszyna JVM. W rzeczywistości 64-bitowy system Windows będzie pasował do dowolnego 32-bitowego procesu dotyczącego środowiska, aby pomóc starym 32-bitowym programom działać poprawnie na 64-bitowym systemie operacyjnym. Przeczytaj MSDN article about WOW64, aby uzyskać więcej informacji.
W wyniku WOW64 32-bitowy JVM wywołujący System.getProperty("os.arch")
zwróci "x86". Jeśli chcesz uzyskać prawdziwe architekturę bazowego systemu operacyjnego na Windows, należy użyć następującej logiki:
String arch = System.getenv("PROCESSOR_ARCHITECTURE");
String wow64Arch = System.getenv("PROCESSOR_ARCHITEW6432");
String realArch = arch != null && arch.endsWith("64")
|| wow64Arch != null && wow64Arch.endsWith("64")
? "64" : "32";
Zobacz także:
Why %processor_architecture% always returns x86 instead of AMD64
Dostaję NPE na linii realArch na mac osx :( – user2693017
Działa lepiej niż nasza poprzednia implementacja Dziękujemy! – CMerrill
Chcę przeprosić, przez cały ten czas, chociaż miałem odpowiedź wybraną jako poprawną odpowiedź! Ale teraz to zrobione (: –
Nie ma sposobu, aby to zrobić bez uzyskania specyficznych cech. Spójrz na ostatni wpis na stronie this (rozwiązanie jest specyficzne dla platformy).
Właściwość os.name
podaje nazwę używanego systemu operacyjnego, os.version
wersję.
os.arch NIE jest wersją systemu operacyjnego, strzeż się tego rozwiązania! http://mark.koli.ch/2009/10/javas-osarch-system-property-is-the-bitness-of-the-jre-not-the-operating-system.html
Chociaż może to teoretycznie odpowiedzieć na pytanie, [byłoby lepiej] (// meta.stackoverflow.com/q/8259), aby dołączyć istotne części odpowiedzi tutaj i podaj link do odniesienia. –
- 1. Jak sprawdzić niezawodność mojego (małego) wbudowanego systemu operacyjnego?
- 2. Jak uzyskać przyjazną nazwę systemu operacyjnego za pomocą Pythona 2.5?
- 3. Bluetooth w java (J2SE)
- 4. Jak uzyskać procent wykorzystania procesora systemu operacyjnego z poziomu java
- 5. Jak znaleźć nazwę systemu operacyjnego?
- 6. Określanie systemu operacyjnego w .vimrc
- 7. Java: Jak sprawdzić, czy ścieżka jest bezwzględna, niezależnie od systemu operacyjnego.
- 8. Jak mogę uzyskać przyszłą wersję przyjaznego dla użytkownika systemu operacyjnego?
- 9. Jak mogę sprawdzić status symbolu debugowania za pomocą Eclipse?
- 10. Jak wysyłać polecenia klawiatury i myszy do podstawowego systemu operacyjnego za pomocą Ruby?
- 11. Dlaczego API JavaFX nie jest zawarte w Java 8 J2SE?
- 12. Jak rozwidlić cały kod systemu operacyjnego Android?
- 13. Jak mogę sprawdzić rozszerzenie pliku za pomocą Perla?
- 14. Jak uzyskać numer wersji systemu operacyjnego?
- 15. Określanie systemu operacyjnego i typu procesora w języku C#
- 16. Jak nie określić motywu WPF i użyć motywu systemu operacyjnego?
- 17. Pobierz domyślną przeglądarkę obecnego systemu operacyjnego i otwórz ją za pomocą strony internetowej?
- 18. Jak mogę sprawdzić, czy ten użytkownik jest anonimowy czy w rzeczywistości jest użytkownikiem mojego systemu?
- 19. Jak ustawić właściwość systemu za pomocą gradle?
- 20. Jak mogę sprawdzić łączną liczbę instalacji dla mojego rozszerzenia chrome?
- 21. Jak uruchomić bez systemu operacyjnego Ubuntu Server za pomocą programu Parallels Desktop?
- 22. Czy mogę utworzyć specyficzne dla systemu operacyjnego zadanie kopiowania Ant?
- 23. Jak uzyskać maskę podsieci lokalnego systemu za pomocą java?
- 24. Jak mogę sprawdzić poprawność kodu kultury za pomocą wyrażenia regularnego?
- 25. Jak mogę sprawdzić certyfikat klienta za pomocą Snap'a
- 26. Wersja systemu operacyjnego iPhone na "" nie pasuje do żadnej z wersji systemu operacyjnego iPhone obsługiwanych w celu rozwoju za pomocą tej kopii Xcode
- 27. Jak mogę sprawdzić podpisany plik jar za pomocą Ant?
- 28. Jak programowo wykrywać wersję systemu operacyjnego Windows Phone 8.1?
- 29. Zgodność wsteczna systemu Windows 10 Uniwersalna aplikacja
- 30. Jak mogę programowo sprawdzić uprawnienia Amazon S3 za pomocą boto?
No tak, tak właśnie myślałem, ale potem zobaczyłem ten link, ty mi Chcę to sprawdzić: http://mark.koli.ch/2009/10/javas-osarch-system-property-jest-bitness-of-the-jre-nie-the-operating-system.html powiedz mi, co myślisz –
Możesz zaakceptować alternatywną odpowiedź. – assylias