Detecting the platform (Window or Linux) by groovy

2019-04-03 02:35发布

问题:

Is there a way to detect the platform (Window / Linux) in which the website is running by Groovy / Grails?

回答1:

System.properties['os.name']

will return the name of the OS, e.g. "Windows XP". So if you want to figure out whether you're running on Windows or not, you could do something like:

if (System.properties['os.name'].toLowerCase().contains('windows')) {
    println "it's Windows"
} else {
    println "it's not Windows"
}

Alternatively, org.apache.commons.lang.SystemUtils (from the Apache commons-lang project) exposes some boolean constants that provide the same information as the code above, e.g.

SystemUtils.IS_OS_MAC
SystemUtils.IS_OS_WINDOWS
SystemUtils.IS_OS_UNIX

More specific constants such as these are also available

SystemUtils.IS_OS_WINDOWS_2000
SystemUtils.IS_OS_SOLARIS
SystemUtils.IS_OS_MAC_OSX


回答2:

or for short:

if (System.env['OS'].contains('Windows')){ println "it's Windows" }

Since groovy provide a Map access to getAt/putAt methods.