2010-02-16 4 views
7

J'ai une application Java qui doit fonctionner différemment sous Windows 7.Comment tester la plate-forme Windows 7?

Comment vérifieriez-vous quelle version de Windows est présente? Est-ce suffisant de vérifier la version 6.1 du système d'exploitation?

+0

Merci pour les réponses! Je me demande aussi à quoi ressemblera le numéro de version après le prochain service pack - 6.1.1 ou quoi? Si c'est le cas, ce n'est plus un double simple ... – paul

+2

Si vous avez besoin de vérifier la version de Windows, vous attaquez probablement votre problème du mauvais angle. Qu'est-ce que vous essayez d'accomplir? –

+0

@ So/ren - c'est juste que le département pc veut changer le chemin de stockage de données par défaut pour les nouveaux déploiements (Win7). Je vais devoir utiliser un chemin séparé. Je suppose que je pourrais demander une variable d'environnement mais c'est trop tard maintenant ... – paul

Répondre

5

Je l'ai résolu le même problème vérifier aussi pour os.name, d'une manière null-safe:

public boolean runningOnWindows7() { 
    String osName = System.getProperty("os.name"); 
    String osVersion = System.getProperty("os.version"); 
    return "Windows 7".equals(osName) && "6.1".equals(osVersion); 
} 
2

Les numéros de version du système d'exploitation sont plutôt distincts.

Par exemple, XP est désigné avec le numéro 5.1 et Windows 7 désignés par 6.1

Les numéros de build déterminent les mises à jour et service packs.

Il devrait être assez fiable de vérifier le numéro de version du système d'exploitation. mais gardez à l'esprit que Java est autorisé à fonctionner sur Linux et Mac si Java est installé sur la machine.

2
System.getProperty("os.name") 
System.getProperty("os.version") 

Windows 7 = la version 6.1

1

Fix à la réponse de DFA :

public boolean runningOnWindows7() { 
    String osName = System.getProperty("os.name"); 
    String osVersion = System.getProperty("os.version"); 
    return "Windows 7".equals(osName) || "6.1".equals(osVersion); 
} 

|| au lieu de & &