How can I tell if I'm running in 64-bit JVM or 32-bit JVM (from within a program)?

To determine whether you are running in a 64-bit JVM or a 32-bit JVM from within a Java program, you can use the sun.arch.data.model system property. This property returns "32" if you are running in a 32-bit JVM, and "64" if you are running in a 64-bit JVM.

Here's an example:

String arch = System.getProperty("sun.arch.data.model");
if (arch.equals("64")) {
    // running in a 64-bit JVM
} else {
    // running in a 32-bit JVM
}

Note that this method may not work on all platforms and JVMs, as the sun.arch.data.model system property is a non-standard, Sun/Oracle-specific property.

An alternative approach is to use the java.lang.management.ManagementFactory class to get the value of the os.arch system property. This property returns the architecture of the operating system on which the JVM is running.

Here's an example:

String osArch = ManagementFactory.getOperatingSystemMXBean().getArch();
if (osArch.equals("amd64") || osArch.equals("x86_64")) {
    // running in a 64-bit JVM
} else {
    // running in a 32-bit JVM
}

I hope these examples help! Let me know if you have any other questions.