Java実行環境のOSを判定する
Java実行環境のOSを判定するAPI(というか定数)が「commons-lang」のorg.apache.commons.lang.SystemUtilsにあります。ナイス。(もうちょっとで「os.name」システムプロパティの解析コードを書くところでした・・。)
ただ、booleanの定数になっていてやや使いにくかったので、列挙型を返す関数にしてみました。
/**OSの種別*/ public enum OSName { /**AIX*/ AIX, /**HP_UX*/ HP_UX, /**IRIX*/ IRIX, /**LINUX*/ LINUX, /**MAC*/ MAC, /**MAC_OSX*/ MAC_OSX, /**OS2*/ OS2, /**SOLARIS*/ SOLARIS, /**SUN_OS*/ SUN_OS, /**WINDOWS*/ WINDOWS, /**不明*/ UNKNOWN } /** * OS名を取得する。< * @return OS名 */ public static final OSName getOsName() { if ( SystemUtils.IS_OS_AIX ) { return OSName.AIX; } else if ( SystemUtils.IS_OS_HP_UX ) { return OSName.HP_UX; } else if ( SystemUtils.IS_OS_IRIX ) { return OSName.IRIX; } else if ( SystemUtils.IS_OS_LINUX ) { return OSName.LINUX; } else if ( SystemUtils.IS_OS_MAC ) { return OSName.MAC; } else if ( SystemUtils.IS_OS_MAC_OSX ) { return OSName.MAC_OSX; } else if ( SystemUtils.IS_OS_OS2 ) { return OSName.OS2; } else if ( SystemUtils.IS_OS_SOLARIS ) { return OSName.SOLARIS; } else if ( SystemUtils.IS_OS_SUN_OS ) { return OSName.SUN_OS; } else if ( SystemUtils.IS_OS_WINDOWS ) { return OSName.WINDOWS; } return OSName.UNKNOWN; }
手元にあったWindowsとLinux(sent-os4)で確認。正しく判定できています。
参考:Macintosh クライアントの検出 - Macの判定方法。「mrj.version」の有無で判定する方法が推奨されています。