我在安装java时遇到了一个问题,就是与我的32位机器不兼容。
这篇博文对检查JVM版本以安装最新的java版本有帮助。
检查32位或64位的Java安装
32位是4字节的大小,而64位是8字节的大小。这意味着64位比32机需要更多的内存。
大多数时候,如果你的代码符合32位JDK版本,那么你只需要在32位机器/64位机器上执行这个类文件。这将编译和执行得很好,但在某些情况下,如果有机器特定的代码,你就会遇到问题,所以在安装JDK版本时要小心。
32位JVM与其他64位主机/框架不兼容,因为我在java 32位上安装Tomcat 64位时遇到了问题。
检查32位JVM或64位JVM的Java程序
我列出了找出32位与64位的方法
按照Sun的规范 ,没有公共的API可以查出32位或64位。
有很多方法可以查出32位版本或不是。
一种方法是sun.arch.data.model ,这是JVM中的一个系统属性,它有32位或64位或未知,所以我们必须写一个简单的程序来读取该属性值。
以下是找出比特版本的示例代码
public class BitVersionDemo {
public static void main(String args[]) {
System.out.println("version ="
+ System.getProperty("sun.arch.data.model"));
}
}
这意味着我的机器安装的JDK版本是32位的。
在Linux上:-
所以如果你的系统安装的是64位的java,通过运行java -d32命令,它给出的信息如下。
bash-3.2$ java -d32 -version
Running a 32-bit JVM is not supported on this platform.
通过执行-d64命令,会显示以下信息
bash-3.2$ java -d64 -version
java version "1.12.0_1"
Java(TM) SE Runtime Environment (build 1.6.0_27-b07)
Java HotSpot(TM) 64-Bit Server VM (build 20.2-b06, mixed mode)
在windows下,"java -d32 -version "会出现错误,所以你可以写上面的例子来找出版本。
如果你想知道参考尺寸是多少,你可以使用Unsafe.addressSize()。注意:这通常是4,因为大多数64位的JVM将使用32位的引用,最多32GB的堆。
总结
总而言之,我们学会了如何使用java程序和命令行查找64位或32位的JDK安装版本。