免责声明:请不要把它否决为一个重复的答案,因为我想和大家分享我的Java代码解决方案(一个同样是本地代码)。

我想把詹姆斯·范·赫斯先生的回答加起来;

由于os.arch属性:

System.getProperty("os.arch");

返回JRE的位,这实际上非常有用。

从文章中:

在代码中,首先需要检查intptr的大小,如果它返回8,那么您将在64位操作系统上运行。如果它返回4,那么您正在运行一个32位的应用程序,所以现在您需要知道您是在本机运行还是在wow64下运行。

因此,intptr大小检查与通过查看“os.arch”执行的检查相同。在此之后,您可以继续确定进程是本机运行还是在WOW64下运行。

可以使用JNA库(例如

NativeLibrary

)它提供了您所需要的本机函数的使用。

//test the JRE here by checking the os.arch property

//go into the try block if JRE is 32bit

try {

NativeLibrary kernel32Library = NativeLibrary.getInstance("kernel32");

Function isWow64Function = kernel32Library.getFunction("IsWow64Process");

WinNT.HANDLE hProcess = Kernel32.INSTANCE.GetCurrentProcess();

IntByReference isWow64 = new IntByReference(0);

Boolean returnType = false;

Object[] inArgs = {

hProcess,

isWow64

};

if ((Boolean) isWow64Function.invoke(returnType.getClass(), inArgs)) {

if (isWow64.getValue() == 1) {

//32bit JRE on x64OS

}

}

} catch (UnsatisfiedLinkError e) { //thrown by getFunction

}

类似的东西也可以,但是我建议使用第一个版本,因为它是我在x64上测试的版本,而在x64操作系统上是32位JRE。另外,这应该是更安全的方法,因为在下面的内容中,您实际上并不检查“isww64进程”函数是否存在。

在这里,我添加了一个JRE检查的例子,尽管并不难找到,但它是完整的。

Map archMap = new HashMap();

archMap.put("x86", 32);

archMap.put("i386", 32);

archMap.put("i486", 32);

archMap.put("i586", 32);

archMap.put("i686", 32);

archMap.put("x86_64", 64);

archMap.put("amd64", 64);

//archMap.put("powerpc", 3);

this.arch = archMap.get(SystemUtils.OS_ARCH);

if (this.arch == null) {

throw new IllegalArgumentException("Unknown architecture " + SystemUtils.OS_ARCH);

}

怎样才能把java32位弄到64位啊_如何使用Java来确定Windows的32位或64位架构?相关推荐

  1. 在cmd指令看计算机位数,在.cmd中使用Windows命令来测试32位或64位并运行命令

    我正在编写一个脚本,用于查找注册表值并将该值返回给Windows命令提示符屏幕,并将其添加到.txt文件中.我到了需要测试的位置,看看机器是32位还是64位,这样我才知道使用哪个命令来查找我在注册表中 ...

  2. android sdk64位资源,android SDK 有32位或64位的分别吗

    android环境下搞开发工作,原来用的是32位的(操作系统32位.Eclipse.JDK 都是32位). 现在换了win7 64位系统, Eclipse.JDK 有32位或64位的, 问一下,and ...

  3. 如何检查Windows Vista , XP和2003系统是32位或64位( x86或x64 )版本

    您可能会收到一个电脑作为礼物,以及想要找出系统是否设置了一个32位或64位(微软标签,他们作为x86或x64 )为基础的作业系统,这需要特别建造的应用软件. ) . For computer or P ...

  4. 平面、3D设计软件最全集子(Windows系32、64位)

    [@2015-2-5] 记录一下自己的脚印:我了个擦,这也有...平面.3D设计软件最全集子(Windows系32.64位),之前找了好久没有发现,电驴下了个把星期..终于下到,火速分享分享, 下载地 ...

  5. 32位dll转64位工具_如何在64位系统中运行32位或16位程序

    由于CPU和系统架构的更新,现行主流的Windows系统已经是64位.然而许多人还恋恋不舍的一些老游戏或老程序已经没有了更新.在64位的系统上运行这些程序,往往会出现运行故障.如何才能解决这个烦心事? ...

  6. vscode中运行2个程序_在64位系统中运行32位或16位程序

    由于CPU和系统架构的更新,现行主流的Windows系统已经是64位.然而许多人还恋恋不舍的一些老游戏或老程序已经没有了更新.在64位的系统上运行这些程序,往往会出现运行故障.如何才能解决这个烦心事? ...

  7. 如何判断您是否拥有32位或64位版本的Google Chrome浏览器

    Google Chrome is extremely popular with our readers, but did you know that they also have a 64-bit v ...

  8. cmake-检测处理器体系结构(32位或64位)

    1.CPU是64位还是32位(CMAKE_SIZEOF_VOID_P) cmake_minimum_required(VERSION 3.5 FATAL_ERROR) project(requir-0 ...

  9. 大白菜浅谈Windows 7 32位与64位之区别

    如今安装Windows 7已经不是什么新鲜事儿了,如果你还没有装Windows 7,那未免也太Out了.说起Windows 7的好处,那真是一堆一堆的,所以别犹豫,赶紧装一个吧. 哎,等等,装之前咱得 ...

最新文章

  1. ubuntu 好玩多了
  2. 冒泡排序 选择排序 快速排序(C语言)
  3. 超市管理系统java swing+mysql报告_基于java+swing+mysql的超市管理系统
  4. 后台excel导出(单sheet 多sheet)
  5. 设计模式 工厂方法_工厂设计模式–一种有效的方法
  6. Thinking in C++ Notes 常量
  7. linux命令中选项分为,Linux 考试试题
  8. python 开源框架学习
  9. php doss_ddos PHP版
  10. 元宇宙里过节,英伟达快速打造「冬日仙境」,占地 16 万平米!
  11. ORA-07445: exception encountered: core dump [kgghstfel()+4] [SIGSEGV]
  12. Vue如何优雅地进行事件解绑和解绑
  13. 北航超算运行matlab,北航荣获世界大学生超算总决赛一等奖!超50万亿次,又破世界纪录...
  14. BIOS视频中断 10号中断详解
  15. 训练记录番外篇(2):2022 ICPC Gran Premio de Mexico 2da Fecha
  16. Let‘sEncrypt快速颁发及自动续签泛域名证书实践指南
  17. 爬取北京链家二手房数据
  18. 【QT】——07_Lambda表达式(笔记)
  19. ftp服务器匿名用户文件夹,ftp服务器匿名用户文件夹
  20. 机器学习错误率、准确率、精确率、召回率

热门文章

  1. 狼羽:4条突破性的市场研究策略帮助创业者发展公司
  2. 滚珠丝杠相应的圈数说明
  3. 数字化展厅设计的优势主要体现在三个方面
  4. vue if else 用法
  5. android 编译 pppoe,android pppoe
  6. 解决JasperReport在Linux系统下中文字体无法显示的问题
  7. SharePoint学习总结
  8. 为网络加速 LOTWARE广域网加速解决方案
  9. java软件安装教程详细_java编程软件安装教程
  10. Laravel Macroable