oslib

Java library to easily detect running Operating System, BSD Flavor, Linux Distribution, Desktop Environment and Architecture

Examples

Detecting if running Elementary OS (Linux)

AbstractOperatingSystem os = OperatingSystem.getOperatingSystem();

if (os.getType() == OperatingSystem.LINUX) {
    LinuxOperatingSystem los = (LinuxOperatingSystem) os;

    if (los.getDistro() == Distro.ELEMENTARY_OS) {
        System.out.println("Is running eOS");
    } else {
        System.out.println("Is running " + los.getDisplayString());
    }
}

Getting all information available about current OS

AbstractOperatingSystem os = OperatingSystem.getOperatingSystem();

if (os.getType() == OperatingSystem.MACOS) {
    MacOSOperatingSystem xos = (MacOSOperatingSystem) os;

    if (xos.getVersion() == MacOSVersion.YOSEMITE) {
        System.out.println("Is running Yosemite " + xos.getVersion().getVersion());
        // Will print: Is running Yosemite 10.10
    }

    System.out.println(xos.getDisplayString());
    // Will print (if running mavericks): Mac OS X Mavericks 10.9
}

if (os.getType() == OperatingSystem.LINUX) {
    LinuxOperatingSystem los = (LinuxOperatingSystem) os;

    System.out.println(los.getDisplayString());
    // Will print (if running Kali): Kali Linux 1.0

    if (los.getArch() == Arch.x86_64) {
        System.out.println("Is 64 bit");
    }
}

Current Known Compatibility:

Note: These are the only ones I have tested with. Will work well on untested systems, but the checked ones are absolutely working. Linux distro and BSD flavor detection after 1.0 is based on screenFetch