Java library to easily detect running Operating System, BSD Flavor, Linux Distribution, Desktop Environment and Architecture
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());
}
}
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");
}
}
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
- macOS
Mac OS X - Windows
- Arch Linux
- Amazon Linux
- Fedora
- Linux Mint
- Ubuntu
- Debian
- CentOS
- Crunchbang
- Gentoo
- Funtoo
- FreeBSD
- OpenBSD
- NetBSD
- DragonFlyBSD
- OpenSUSE
- Mandriva/Mandrake
- Slackware
- Red Hat (RHEL)
- Frugalware
- Peppermint
- SolusOS
- Mageia
- ParabolaGNU/Linux-libre
- Viperr
- LinuxDeepin
- Chakra
- Trisquel
- Manjaro
- elementary OS
- Scientific Linux
- Kali Linux
- Sabayon
- NixOS
- Crux
- Lunar Linux
- BLAG
- gNewSense
- Dragora
- Chapeau
- KDE neon
- Oracle Linux
- Qubes
- Linux (If no distro detected or failed to detect)
- Solaris