/* * Copyright (c) 2013-2016 Chris Newland. * Licensed under https://github.com/AdoptOpenJDK/jitwatch/blob/master/LICENSE-BSD * Instructions: https://github.com/AdoptOpenJDK/jitwatch/wiki */ package org.adoptopenjdk.jitwatch.util; import org.adoptopenjdk.jitwatch.model.assembly.Architecture; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public final class OSUtil { private static final Logger logger = LoggerFactory.getLogger(OSUtil.class); public enum OperatingSystem { WIN, MAC, LINUX } public static OperatingSystem getOperatingSystem() { String osNameProperty = System.getProperty("os.name"); if (osNameProperty != null) { osNameProperty = osNameProperty.toLowerCase(); if (osNameProperty.contains("win")) { return OperatingSystem.WIN; } else if (osNameProperty.contains("mac")) { return OperatingSystem.MAC; } else if (osNameProperty.contains("linux") || osNameProperty.contains("nix")) { return OperatingSystem.LINUX; } } logger.error("Unknown OS name: {}", osNameProperty); return null; } public static Architecture getArchitecture() { String arch = System.getProperty("os.arch"); if (arch != null) { if (arch.contains("arm")) { if (arch.contains("64")) { return Architecture.ARM_64; } else { return Architecture.ARM_32; } } else if (arch.contains("86")) { if (arch.contains("64")) { return Architecture.X86_64; } else { return Architecture.X86_32; } } } return Architecture.X86_64; } }