я следующий кусок кода, чтобы обнаружить, если мое приложение работает на 64-битной платформе:обнаруживая Java VM архитектуры на ОС Windows 10
public static boolean is64BitVM() {
String bits = System.getProperty("sun.arch.data.model", "?");
logger.debug(String.format("sun.arch.data.model=%s", bits));
if (bits.equals("64")) {
return true;
}
String java_vm_name = System.getProperty("java.vm.name");
logger.debug(String.format("java.vm.name=%s", java_vm_name));
String os_arch = System.getProperty("os.arch");
logger.debug(String.format("os.arch=%s", os_arch));
if (bits.equals("?")) {
// probably sun.arch.data.model isn't available
// maybe not a Sun JVM?
// try with the vm.name property
return java_vm_name.toLowerCase().indexOf("64") >= 0;
}
// probably 32bit
return false;
}
Раньше хорошо работать на Windows 7, но после обновления до ОС Windows 10 те же кусок кода начал сообщать 32bit архитектуру:
2015-11-05 17:53:15,429 DEBUG [javawsApplicationMain] sun.arch.data.model=32
2015-11-05 17:53:15,431 DEBUG [javawsApplicationMain] java.vm.name=Java HotSpot(TM) Client VM
2015-11-05 17:53:15,431 DEBUG [javawsApplicationMain] os.arch=x86
что странно, что он сообщает 32bit архитектуры при запуске через JWS, но когда я запускаю его на место в моем IDE я получаю должный результат (64 -немного). Кажется, это еще одна проблема с моделью безопасности Windows 10. Любые мысли?
Вы уверены, что используете одну и ту же виртуальную машину? У вас есть несколько установленных? – Doon
У вас есть 32-битный или 64-битный JDK/JRE? – Rustam
Какая версия jdk или jre? – Marged