有没有可能在linux上安装64位JVM,这样堆就可以大于2gb?

cvxl0en2  于 2022-11-23  发布在  Linux
关注(0)|答案(2)|浏览(179)

这是一个32位Ubuntu操作系统

rob@laptop:~$ uname -a
Linux laptop 3.5.0-37-generic #58~precise1-Ubuntu SMP Wed Jul 
10 17:51:56 UTC 2013 i686 i686 i386 GNU/Linux

rob@laptop:~$ java -version
java version "1.7.0_25"
OpenJDK Runtime Environment (IcedTea 2.3.10) (7u25-2.3.10-1ubuntu0.12.04.2)
OpenJDK Server VM (build 23.7-b01, mixed mode)

rob@laptop:~$ sudo update-alternatives --config java
There are 3 choices for the alternative java (providing /usr/bin/java).

Selection    Path                                           Priority   Status
0            /usr/lib/j2re1.6-ibm/jre/bin/java               1200      auto mode
1            /home/rob/Downloads/jre1.7.0_25/bin/java        1         manual mode
2            /usr/lib/j2re1.6-ibm/jre/bin/java               1200      manual mode
* 3            /usr/lib/jvm/java-7-openjdk-i386/jre/bin/java   1051      manual mode

我希望能够运行2g以上的堆

rob@laptop:~$ java -Xmx3g -jar tool.jar 
Error occurred during initialization of VM
Could not reserve enough space for object heap
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

rob@laptop:~$ free -g
             total       used       free     shared    buffers     cached
Mem:            15          2         12          0          0          1
5sxhfpxr

5sxhfpxr1#

不可以。32位内核(可能还有32位CPU)无法在您选择的操作系统和内核上运行JVM的64位可执行文件(或任何其他64位可执行文件/ELF)。

axzmvihb

axzmvihb2#

据我所见,你没有提到这是什么硬件。
32位/ 64位的问题是关于硬件的基本字长是多少,处理器有使用该字长的指令。因此,为64位构建的软件将使用这些指令,如果你设法让它在32位机器上运行,就会崩溃。
要做你想做的,* 如果 * 你的机器是64位的,那么你可以安装一个64位的linux,然后安装64位的JVM。

相关问题