Skip to content

Commit 791b1b6

Browse files
authored
[BAEL-4556] How to Check if a Java Program Is Running in 64-Bit JVM or 32-Bit JVM (eugenp#10139)
* How to Check if a Java Program Is Running in 64-Bit JVM or 32-Bit JVM How to Check if a Java Program Is Running in 64-Bit JVM or 32-Bit JVM * baeldung-articlesBAEL-4556 How can I tell if I'm running in 64-bit JVM or 32-bit JVM Changes as per review comments . 1.Package Name change 2.Variable change from static to instance 3.Test Method name change * Update JVMBitVersionUnitTest.java [BAEL-4556] How to Check if a Java Program Is Running in 64-Bit JVM or 32-Bit JVM * [BAEL-4556]Added code and Junits for JVMBitVersion * [BAEL-4556]Removed code and Junits for os.arch property to check JVMBitVersion Co-authored-by: MeenaGawande <[email protected]>
1 parent 6e00ae0 commit 791b1b6

2 files changed

Lines changed: 70 additions & 0 deletions

File tree

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package com.baeldung.jvmbitversion;
2+
3+
import com.sun.jna.Platform;
4+
5+
public class JVMBitVersion {
6+
7+
public String getUsingSystemClass() {
8+
return System.getProperty("sun.arch.data.model") + "-bit";
9+
}
10+
11+
public String getUsingNativeClass() {
12+
if (com.sun.jna.Native.POINTER_SIZE == 8) {
13+
return "64-bit";
14+
} else if (com.sun.jna.Native.POINTER_SIZE == 4) {
15+
return "32-bit";
16+
} else
17+
return "unknown";
18+
}
19+
20+
public boolean getUsingPlatformClass() {
21+
return (Platform.is64Bit());
22+
}
23+
24+
}
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
package com.baeldung.jvmbitversion;
2+
3+
import static org.junit.jupiter.api.Assertions.assertEquals;
4+
5+
import org.junit.Before;
6+
import org.junit.Test;
7+
8+
import com.baeldung.jvmbitversion.JVMBitVersion;
9+
import com.sun.jna.Platform;
10+
11+
public class JVMBitVersionUnitTest {
12+
13+
private JVMBitVersion jvmVersion;
14+
15+
@Before
16+
public void setup() {
17+
jvmVersion = new JVMBitVersion();
18+
}
19+
20+
@Test
21+
public void whenUsingSystemClass_thenOutputIsAsExpected() {
22+
if (System.getProperty("sun.arch.data.model") == "64") {
23+
assertEquals("64-bit", jvmVersion.getUsingSystemClass());
24+
} else if (System.getProperty("sun.arch.data.model") == "32") {
25+
assertEquals("32-bit", jvmVersion.getUsingSystemClass());
26+
}
27+
}
28+
29+
@Test
30+
public void whenUsingNativeClass_thenResultIsAsExpected() {
31+
if (com.sun.jna.Native.POINTER_SIZE == 8) {
32+
assertEquals("64-bit", jvmVersion.getUsingNativeClass());
33+
} else if (com.sun.jna.Native.POINTER_SIZE == 4) {
34+
assertEquals("32-bit", jvmVersion.getUsingNativeClass());
35+
}
36+
}
37+
38+
@Test
39+
public void whenUsingPlatformClass_thenResultIsAsExpected() {
40+
if (Platform.is64Bit() == Boolean.TRUE) {
41+
assertEquals(Boolean.TRUE, jvmVersion.getUsingPlatformClass());
42+
} else if (com.sun.jna.Native.POINTER_SIZE == 4) {
43+
assertEquals(Boolean.FALSE, jvmVersion.getUsingPlatformClass());
44+
}
45+
}
46+
}

0 commit comments

Comments
 (0)