Jak poznat, zda stroj běží na 32bit nebo 64bit architektuře v javě.

V zásadě by se takové rozlišování nemělo používat, ale pokud už vyloženě potřebujeme využívat nějaké konkrétní binární ovladače/knihovny/software, občas je nutné vědět, která architektura stojí pod JVM.

package com.ivitera.examples;

public class ArchitectureDetection {
    public static void main(String[] args) {
        // http://www.oracle.com/technetwork/java/hotspotfaq-138619.html#64bit_detection
        //
        //There's no public API that allows you to distinguish between 32 and 64-bit
        // operation.  Think of 64-bit as just another platform in the write once,
        // run anywhere tradition.  However, if you'd like to write code which is
        // platform specific (shame on you),
        // the system property sun.arch.data.model has the value "32", "64", or "unknown".
        String architecture = System.getProperty("sun.arch.data.model");
        System.out.println("Current architecture: " + architecture);
    }
}

Výstup:

Current architecture: 32

Inspirováno FAQ: http://www.oracle.com/technetwork/java/hotspotfaq-138619.html#64bit_detection