Jump to content
Tuts 4 You

In Java, how do I identify the OS system programmatically?


Recommended Posts

I'm reading this article about the function of OS system and I'd want to know the operating system of the host on which my Java program is executing programmatically (for example: I would like to be able to load different properties based on whether I am on a Windows or Unix platform). What is the most reliable and safest approach to achieve this?

Edited by Mobo0
Link to comment

package com.mkyong.system;

public class OSValidator {

    private static String OS = System.getProperty("os.name").toLowerCase();

    public static void main(String[] args) {

        System.out.println("os.name: " + OS);

        if (isWindows()) {
            System.out.println("This is Windows");
        } else if (isMac()) {
            System.out.println("This is Mac");
        } else if (isUnix()) {
            System.out.println("This is Unix or Linux");
        } else if (isSolaris()) {
            System.out.println("This is Solaris");
        } else {
            System.out.println("Your OS is not support!!");

    public static boolean isWindows() {
        return (OS.indexOf("win") >= 0);

    public static boolean isMac() {
        return (OS.indexOf("mac") >= 0);

    public static boolean isUnix() {
        return (OS.indexOf("nix") >= 0
                || OS.indexOf("nux") >= 0
                || OS.indexOf("aix") > 0);

    public static boolean isSolaris() {
        return (OS.indexOf("sunos") >= 0);



Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Create New...