我有一台装有Windows 7 Professional 64位操作系统的笔记本电脑。它有一个包含java.exe的C:\ProgramData\Oracle\Java\javapath文件夹。我要如何知道这个JVM是32位还是64位的?我右键单击它并打开“属性”窗口,然后在“详细信息”选项卡下,文件版本为8.0.1210.13。但是没有提供关于它是32位还是64位的信息。
C:\ProgramData\Oracle\Java\javapath\java.exe -version
。在打印的详细信息中,你应该能看到它是32位还是64位版本。openjdk version "1.8.0_121"
OpenJDK Runtime Environment (build 1.8.0_121-b14)
OpenJDK 64-Bit Server VM (build 25.121-b14, mixed mode)
java.exe
,那么请使用C:\ProgramData\Oracle\Java\javapath\bin\java -version
。 - T.J. Crowderjava version "1.8.0_121" Java(TM) SE Runtime Environment (build 1.8.0_121-b13) Java HotSpot(TM) Client VM (build 25.121-b13, mixed mode, sharing)
。所以根据你的回答,它是32位的吗? - srhos.arch
。System.out.println(System.getProperty("os.arch"));
32位架构通常用x86_32
或简写为x86
表示,而64位架构则用x86_64
表示。
os.arch
不是主机操作系统。它是 进程 架构。试一下,或阅读 https://dev59.com/yWgv5IYBdhLWcg3wHNDG#37028080 - Kevin Smyth要可靠地确定可执行映像的位数,您需要工具支持。这可以是一个十六进制编辑器,用于检查PE Image的内容。按照以下步骤可以确定二进制文件的机器类型:
0x50
0x45
0x00
0x00
(PE\0\0
)。这是PE映像的标志。如果值不同,则不是可执行映像。0x014c
对应于x86(32位)。0x8664
对应于x64(64位)。虽然简单可靠,但需要一定的小心。使用其他工具可以更容易地完成。如果您安装了Visual Studio,则可以使用DUMPBIN通过在命令提示符下执行以下命令来报告机器类型:
dumpbin.exe /HEADERS <path\to\executable\image> | findstr machine
这将产生以下输出(分别为x86和x64):
14C machine (x86)
or
8664 machine (x64)
如果您没有Visual Studio或不想安装它,您可以使用Process Explorer来确定正在运行的进程的位数。为此,请右键单击进程树视图中的相应进程,然后选择属性...。在映像选项卡上,您将看到进程的位数。