612 Stimmen

Wie kann ich feststellen, ob ich in einer 64-Bit-JVM oder einer 32-Bit-JVM arbeite (innerhalb eines Programms)?

Wie kann ich feststellen, ob die JVM, in der meine Anwendung läuft, 32-Bit oder 64-Bit ist? Welche Funktionen oder Eigenschaften kann ich verwenden, um dies innerhalb des Programms zu erkennen?

4 Stimmen

Nur aus reiner Neugierde: Warum müssen Sie die natürliche Größe des Systems kennen? Details wie diese sind in Java abstrahiert, so dass Sie sie (zumindest theoretisch) nicht kennen müssen.

3 Stimmen

Damit kann ich den Speicherbedarf für Objekte aufgrund von Zeigern grob abschätzen. Neugier auch - schien, wie es sollte ein Weg sein, aber ich hatte noch nie davon gehört.

13 Stimmen

Eine weitere Situation, in der es wichtig ist, zwischen 32- und 64-Bit-JVMs zu unterscheiden, ist bei gemappten Dateien. Auf 32-Bit-Systemen können nur 2 GB abgebildet werden. Daher ist es wichtig, Dateisegmente entsprechend zuzuordnen und die Zuordnung aufzuheben, damit diese Grenze nicht überschritten wird, während die Grenze auf 64-Bit-JVMs viel, viel, viel höher ist.

-1voto

user1364368 Punkte 1394

Unter Windows 7 im Menü " Bedienfeld " unter " Programme | Programme und Funktionen "Die 64-Bit-Varianten von JRE und JDK werden mit " 64-Bit " in Klammern (z. B. " Java SE Entwicklungskit 7 Update 65 (64-Bit) "), während bei den 32-Bit-Varianten die Variante nicht in Klammern angegeben wird (z. B. nur " Java SE Entwicklungskit 8 Update 60 ").

-3voto

Zuko Punkte 2534

So ermitteln Sie die Version der JVM, auf der das Programm gerade läuft

System.out.println(Runtime.class.getPackage().getImplementationVersion());

-3voto

BullyWiiPlaza Punkte 14399

Para Windows können Sie die Java Heimatort. Wenn sie enthält (x86) es ist 32-bit ansonsten 64-bit :

public static boolean is32Bit()
{
    val javaHome = System.getProperty("java.home");
    return javaHome.contains("(x86)");
}

public static boolean is64Bit()
{
    return !is32Bit();
}

Beispielpfade:

C:\Program Files (x86)\Java\jdk1.8.0_181\bin\java.exe # 32-bit
C:\Program Files\Java\jdk-10.0.2\bin\java.exe # 64-bit

Warum sollte man sich um eine Windows einzige Lösung?

Wenn Sie wissen müssen, mit welcher Bit-Version Sie arbeiten, sind Sie wahrscheinlich mit nativem Code auf Windows Die Plattformunabhängigkeit ist also ohnehin nicht mehr gegeben.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X