Forum Clubic

[JAVA] Compiler pour 1.4 et 1.5 - Cherche commande magique

Les mecs de chez sun on changer les hashtable entre la 1.4 et la 1.5 alors :
soit je code en 1.4 et ca compile en 1.4 mais ca warning de partout en 1.5,
soit je code en 1.5 et ca compile pas en 1.4 mais ca roule en 1.5

Donc petite question :
Est ce qu’on peut dire dans le code de compiler telle ligne ou telle ligne suivant la version (un genre de #define quoi)

J’ai pas envie d’avoir 2 fichier sources.

Merci d’avance.

J’ai pas encore vu ça en cours de Javargh avancé, mais avec les annotations (@…) tu dois pouvoir faire des trucs classes par classes. Maintenant, j’en sais pas plus.

Essaye de charger le jdk1.4?

Les warning tu t’en fout: si tu veux du code compatible 1.4 et 1.5, tu code en 1.4. désactive les “fails on warnings” si tu en as. et sous eclipse: tu peux désactiver les warnings concernés.
et si vraiment tu veux du code spécifique 1.5, tu écris les classes concernées en double, en les plaçant en patch devant les classes 1.4. (et en créant un jar version 1.4, un jar version 1.5)
M’enfin, plus simple de rester en 1.4 pour une compatibilité :neutre:

il nous est même arrivé de coder en 1.1 pour faire des applets compatibles avec les vieux browser…

En java 5 ils ont ajouté la possibilité d’utiliser des Generics, c’est-à-dire que tu peux déclarer une HashTable comme ne pouvant contenir que des String par exemple.

HashTable<String> hash = new HashTable<String>();

Cette façon de faire est préférable quant à moi, car elle permet de s’assurer qu’on ne met pas autre chose dans la HashTable par erreur, et tu n’es pas obligé de faire des transtypages (cast).

Java 5 te donne des warnings, car c’est préférable de spécifier le type avec les generics, mais ce n’est en aucun cas incompatible avec 1.4. C’est correct d’écrire HashTable hash = new HashTable(); aussi en java 1.5.

Libre à toi, d’utiliser l’expressivité supplémentaire de java 5 ou non.

Mais le truc c’est que les warning empechent de compiler correctement :confused:

Il faut pas oublier de passer deux paramètre pour sépcifier le type entre < > pour une hashtable sinon ca marchera pas non plus.

Pour diminuer l’influence de la JDK => j’utilise Ant d’apache avec une variable d’environnement %JAVA qui pointe sur le JDK de la machine
++