2009-05-13 10 views
1

J'ai un fichier JAR tiers compilé avec Java 1.4. Y at-il un outil qui peut rendre le fichier jar compatible avec Java 1.6? (Quelque chose comme "rétrotranslateur" mais qu'est-ce que l'inverse de celui-ci).
J'ai essayé de décompiler les fichiers de classe et de les compiler dans la version 1.6 mais cela échoue.Java: Existe-t-il un outil pour rendre le code (dans un JAR tiers) compatible avec la forward (1.4 - 1.6)


Voici la question:

Mon projet utilise « rsadapter.jar » pour 5.1 était et j'ai eu ma configuration de projet dans Eclipse 2.0 + JDK 1.4 et utilisé pour fonctionner correctement. Maintenant, j'ai migré vers Java 1.6 et Eclipse Ganymede (selon les exigences) et le même projet (exactement la même configuration) a commencé à se plaindre des fichiers de classe manquants dans le 'rsadapter.jar'. J'ai mis explicitement le JAR dans classpath mais il n'a toujours pas pu charger les classes. Ensuite, j'ai changé la version de Java Compiler à 1.4 et il a commencé à fonctionner.

Cordialement,
- Ashish

+0

Sauf si vous utilisiez des classes non prises en charge (bon conseil pour cela: elles se trouvent dans un sous-package de "sun. *" Ou "com.sun. *"), Cela ne devrait pas arriver. Quelles classes sont manquantes? –

Répondre

5

classes compilées par JDK 1.4 devraient être utilisables dans un environnement d'exécution Java 6 en l'état. Si vous avez réellement rencontré un problème, veuillez le décrire.


Mise à jour: Je ne peux reproduire ce avec des types dans le paquet « par défaut » (qui est, non pas dans un paquet). Les classes que vous essayez d'utiliser dans le package par défaut? En outre, cela m'arrive indépendamment de la version JDK utilisée pour compiler.


Mise à jour: D'accord, après un peu de recherche, je réalisais que vous ne pouvez jamais faire référence à un type dans le package sans nom d'un package nommé. Fait sens, mais certainement pas ce que vous rencontrez.

Je peux compiler du code sous JDK 1.4.2_19 et l'utiliser très bien dans un projet Java 6 Eclipse. Je pense que ce problème est spécifique à votre environnement. Dans cette situation, je voudrais sauvegarder Eclipse et recréer tout (installation JDK, espace de travail, projets) à partir de zéro, pour voir si je pouvais l'effacer.

+0

J'ai aussi commencé avec la même compréhension. Veuillez voir les détails du problème ajoutés dans la question. – Vini

+0

La classe dont il est question est 'com.ibm.websphere.Reassociatble' – Vini

0

Peut-être avez-vous défini Eclipse pour lancer des erreurs de compilation lors de l'utilisation de méthodes ou classes obsolètes?

1

J'ai eu un autre problème avec un code hérité écrit en Java 1.4.x: les auteurs aimaient les énumérations et aimaient nommer les variables correspondantes 'enum'. Ils l'ont même utilisé pour les noms de paquets. Et cela empêche de compiler le code sous Java 1.5 (ou plus) assez bien.

Changer que est automatiquement tout à fait un problème.

Questions connexes