Bonjour,

J'ai un JNLP qui ressemble à cela :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
<resources os="Mac">
	<nativelib href="lib/mylib_osx.jar" />
</resources>
 
<resources os="Windows">
	<nativelib href="lib/mylib_winXP.jar" />
</resources>
Cela fonctionne très bien pour séparer les OS Windows et Mac. Mais je voudrais utiliser une version de la librairie pour Windows 2000 et une autre version pour tous les autres Windows.

Idéalement, cela reviendrait à faire ceci (en prenant en compte qu'apparemment on ne peut pas dire "sinon, par défaut" quand on spécidife un os) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
<resources os="Windows\ XP Windows\ Vista Windows\ 7 Windows\ 8">
	<nativelib href="lib/mylib_winXP.jar" />
</resources>
 
<resources os="Windows\ 2000">
	<nativelib href="lib/mylib_win2K.jar" />
</resources>
Problème : La doc JNLP précise bien qu'il faut échapper les espaces par des \ dans les noms d'os car l'espace est considéré comme un séparateur de nom de version. Mais La technologie JNLP ne semble pas du tout prendre en compte les noms complets de versions de Windows. Seul Windows XP dans nos tests charge la librairie (bug ou fonctionnalité ?).

Un petit test rapide affichant la variable d'environnement os.name dans une classe HelloWorld montre que Windows 2000 renvoie bien "Windows 2000" et le même test sur Windows 8 renvoie "Windows NT (unknown)" (sur une jre 6u26).

Ma question est donc de savoir s'il est possible de limiter les ressources non pas à un système d'exploitation global ("Windows", "Mac" ou autre) mais à une version du système d'exploitation ("Windows XP", "Windows 2000", ...). J'ai essayé l'attribut "version" mais ça ne semble pas exister. J'ai également fait plusieurs tests syntaxiques ("Windows2000", "Windows\ NT", etc.).

Merci pour vos lumières.