2010-07-13 7 views
1

Mon projet est construit dans 1.4.2 JDK. Maintenant, il va interagir avec un pot tiers, construire dans JDK 1.6comment faire la compatibilité entre deux parties travaillant sur différentes versions de jdk

Je reçois des problèmes de compatibilité lors de l'utilisation des classes client. Est-il possible de le résoudre sans mettre à jour mon JDK 1.6 ou la reconstruction de pot tiers dans

+1

La deuxième option échouera probablement, car le fichier tiers utilise probablement les fonctions Java 1.6. – jpabluz

+0

Quel message d'erreur obtenez-vous? – aponomarenko

+0

Que voulez-vous dire par le terme «interagir»? Exécuter directement sur JDK 1.4 ou interagir avec votre projet à travers le réseau? – aponomarenko

Répondre

1
1.4.2

Vous ne pouvez pas exécuter une classe compilée avec JDK 1.6 sur JDK 1.4 précédent parce que vous eu une exception java.lang.UnsupportedClassVersionError. Cela est dû au fait que Java n'est pas compatible avec les versions antérieures, il est simplement rétrocompatible (voir specification).

Afin de le vérifier, je l'ai installé et 1.4.2.19 JDK et a écrit 1.6.0.23 JDK un exemple d'application:

 
public class HelloWorld { 
    public static void main(String[] args) { 
      System.out.println("Hello world!"); 
    } 
} 

Construit avec 1.6.0.23 JDK:

../1.6.0.23/bin/javac HelloWorld.java 

Et exécuter avec JDK 1.4.2.19:

../1.4.2.19/bin/java HelloWorld 

sortie: 01

 
Exception in thread "main" java.lang.UnsupportedClassVersionError: HelloWorld 
(Unsupported major.minor version 50.0) 
     at java.lang.ClassLoader.defineClass0(Native Method) 
     at java.lang.ClassLoader.defineClass(ClassLoader.java:539) 
     ... 


Solution: Vous pouvez essayer de reconstruire votre application tierce avec JDK 1.4 si elle ne remet pas les méthodes introduites dans 1.6 (et 1.5).

Questions connexes