Il vantaggio di un linguaggio cross-platform come Java, C++ o C# è quello di poter essere utilizzato in più ambienti e sistemi operativi, ma questo non vuol dire che sia possibile programmare senza tener conto ad esempio del sistema operativo ospitante a run-time.
In alcuni casi è fondamentale identificare su che tipo di Sistema Opearivo viene eseguito una porzione di codice. Di seguito vi illustro uno snippet di codice contenente una classe Java in grado di supportare l’identificazione del SO a run-time:
https://gist.github.com/kiuz/816e24aa787c2d102dd0
Vi allego anche la discussione avvenuta su Stackoverflow sullo stesso argomento in cui vengono suggeriti alcuni miglioramenti allo snippet sopra: https://stackoverflow.com/questions/14288185/detecting-windows-or-linux/24861219#24861219
Fonte: http://www.mkyong.com/java/how-to-detect-os-in-java-systemgetpropertyosname/