怎样才能把java32位弄到64位啊_如何使用Java来确定Windows的32位或64位架构?
免责声明:请不要把它否决为一个重复的答案,因为我想和大家分享我的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位架构?相关推荐
- 在cmd指令看计算机位数,在.cmd中使用Windows命令来测试32位或64位并运行命令
我正在编写一个脚本,用于查找注册表值并将该值返回给Windows命令提示符屏幕,并将其添加到.txt文件中.我到了需要测试的位置,看看机器是32位还是64位,这样我才知道使用哪个命令来查找我在注册表中 ...
- android sdk64位资源,android SDK 有32位或64位的分别吗
android环境下搞开发工作,原来用的是32位的(操作系统32位.Eclipse.JDK 都是32位). 现在换了win7 64位系统, Eclipse.JDK 有32位或64位的, 问一下,and ...
- 如何检查Windows Vista , XP和2003系统是32位或64位( x86或x64 )版本
您可能会收到一个电脑作为礼物,以及想要找出系统是否设置了一个32位或64位(微软标签,他们作为x86或x64 )为基础的作业系统,这需要特别建造的应用软件. ) . For computer or P ...
- 平面、3D设计软件最全集子(Windows系32、64位)
[@2015-2-5] 记录一下自己的脚印:我了个擦,这也有...平面.3D设计软件最全集子(Windows系32.64位),之前找了好久没有发现,电驴下了个把星期..终于下到,火速分享分享, 下载地 ...
- 32位dll转64位工具_如何在64位系统中运行32位或16位程序
由于CPU和系统架构的更新,现行主流的Windows系统已经是64位.然而许多人还恋恋不舍的一些老游戏或老程序已经没有了更新.在64位的系统上运行这些程序,往往会出现运行故障.如何才能解决这个烦心事? ...
- vscode中运行2个程序_在64位系统中运行32位或16位程序
由于CPU和系统架构的更新,现行主流的Windows系统已经是64位.然而许多人还恋恋不舍的一些老游戏或老程序已经没有了更新.在64位的系统上运行这些程序,往往会出现运行故障.如何才能解决这个烦心事? ...
- 如何判断您是否拥有32位或64位版本的Google Chrome浏览器
Google Chrome is extremely popular with our readers, but did you know that they also have a 64-bit v ...
- cmake-检测处理器体系结构(32位或64位)
1.CPU是64位还是32位(CMAKE_SIZEOF_VOID_P) cmake_minimum_required(VERSION 3.5 FATAL_ERROR) project(requir-0 ...
- 大白菜浅谈Windows 7 32位与64位之区别
如今安装Windows 7已经不是什么新鲜事儿了,如果你还没有装Windows 7,那未免也太Out了.说起Windows 7的好处,那真是一堆一堆的,所以别犹豫,赶紧装一个吧. 哎,等等,装之前咱得 ...
最新文章
- ubuntu 好玩多了
- 冒泡排序 选择排序 快速排序(C语言)
- 超市管理系统java swing+mysql报告_基于java+swing+mysql的超市管理系统
- 后台excel导出(单sheet 多sheet)
- 设计模式 工厂方法_工厂设计模式–一种有效的方法
- Thinking in C++ Notes 常量
- linux命令中选项分为,Linux 考试试题
- python 开源框架学习
- php doss_ddos PHP版
- 元宇宙里过节,英伟达快速打造「冬日仙境」,占地 16 万平米!
- ORA-07445: exception encountered: core dump [kgghstfel()+4] [SIGSEGV]
- Vue如何优雅地进行事件解绑和解绑
- 北航超算运行matlab,北航荣获世界大学生超算总决赛一等奖!超50万亿次,又破世界纪录...
- BIOS视频中断 10号中断详解
- 训练记录番外篇(2):2022 ICPC Gran Premio de Mexico 2da Fecha
- Let‘sEncrypt快速颁发及自动续签泛域名证书实践指南
- 爬取北京链家二手房数据
- 【QT】——07_Lambda表达式(笔记)
- ftp服务器匿名用户文件夹,ftp服务器匿名用户文件夹
- 机器学习错误率、准确率、精确率、召回率