Java, hvordan man kontrollerer om det er Vista, Windows 7 eller højere med Apache Commons

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg forstår, at du kan gøre


SystemUtils.IS\_OS\_WINDOWS\_VISTA || SystemUtils.IS\_OS\_WINDOWS\_7


men er der en måde at gøre dette programmeret på for alle fremtidige versioner windows, så metoden er noget som:


isWindowsVistaOrHigher()

Bedste reference


Systemegenskaben os.version indeholder den interne OS-version (os.name er det menneskelige læsbare navn og vil indeholde Windows efterfulgt af mere specifik info som Vista. Jeg tror på Windows 7, hvis du ringer til System.getProperty("os.version"), får du 6.1, mens Vista er 6.0. Hvis man antager, at de ikke ændrer konventionen, kan man forsøge at tage del op til den første prik, hvis en prik er til stede (ved hjælp af String.substring() og String.indexOf('.')), analysér substringen som et helt tal ved hjælp af Integer.parseInt() og sammenlign, om den resulterende værdi er mindst 6.

Andre referencer 1


Hvad jeg endte med at gøre var:


public boolean isVistaOrHigher()
{
   return !SystemUtils.IS\_OS\_WINDOWS\_XP && !SystemUtils.IS\_OS\_WINDOWS\_98 && ... ;
}