Я хочу определить битовую архитектуру моей операционной системы, т.е. будь то 32-разрядная ОС или 64-разрядная ОС с использованием кода Java.
Я пробовал следующее:
System.out.printlnSystem.getProperty("os.name")); //gives OS name -> Windows/Linux/Solaris
System.out.println(System.getProperty("os.arch")); //gives JVM architecture -> amd64
System.out.println(System.getProperty("sun.arch.data.model")); //gives JVM architecture again but just the bit -> 64
Однако ни одно из приведенных выше не дает мне архитектуры ОС. Они дают соответствующий вывод, который упоминается в комментариях, кроме строк кода.
Как определить архитектуру ОС?
Я надеюсь, что эта одна строка может вам помочь.
public class OS {
public static void main(String[] args) {
//System.out.println("OS name : "+System.getProperty("os.name"));
//System.out.println("OS arch : "+System.getProperty("os.arch"));
//System.out.println(System.getProperty("sun.arch.data.model"));
//System.out.println(System.getenv().get("PROCESSOR_ARCHITECTURE"));
System.getProperties().list(System.out);
}
}
Вы можете проверить переменную окружения, например, для Windows
System.out.println(System.getenv().get("PROCESSOR_ARCHITECTURE"));
System.out.println(System.getProperty("os.arch"))
?
os.arch
сообщает вам, наos.arch
JRE работает ваша программа. К сожалению, нет прямого способа узнать архитектуру OS, вам придется продолжить с JNI.