Pourquoi le compilateur java 1.4 ne se plaint pas d'une bibliothèque tierce compilée avec le compilateur 1.5? Le problème est rencontré lors de l'exécution UnsupportedClassVersionError.pourquoi compilateur Java 1.4 ne se plaint pas d'une bibliothèque tierce compilée avec le compilateur 1.5?
Répondre
À partir de Java 1.5, le format du fichier de classe a été légèrement modifié (pour conserver les annotations, par exemple). Voir l'option -target
dans the compiler docs. Les JVM Java 1.5 et ultérieures prennent en charge les deux formats de fichiers de classe; Les machines virtuelles Java 1.4 (naturellement) ne supportent que le format antérieur. En ce qui concerne les raisons pour lesquelles le compilateur ne se plaint pas: Le compilateur doit seulement se préoccuper de savoir s'il a assez d'informations pour compiler correctement les fichiers qu'il a été demandé de compiler; pas s'il peut exécuter correctement. La machine virtuelle Java doit s'inquiéter de l'exécution correcte des classes. Apparemment, si vous voyez le compilateur 1.4 référencer avec bonheur les classes 1.5 depuis le code qu'il compile, le changement de format n'affecte pas les informations dont le compilateur a besoin pour compiler le code de style 1.4. Je ne peux pas trouver immédiatement une référence garantissant ce comportement, mais si c'est ce que vous voyez ...
- 1. Pourquoi le compilateur ne se plaint-il pas d'un ',' supplémentaire dans Array ou Initializer d'objet?
- 2. Pourquoi IcedTea6 ne compile pas le code spécifique Java 1.5?
- 3. vérifier que le compilateur produit le code Java 1.5
- 4. compilateur ne se plaint pas de valeur fonction ne pas retourner
- 5. Le compilateur C# se plaint que la classe abstraite n'implémente pas l'interface?
- 6. Pourquoi le compilateur ne reconnaît-il pas mes contrôles?
- 7. C++: Le compilateur se plaint de l'initialisation des variables dans le constructeur
- 8. Bibliothèque d'exécution du compilateur Matlab
- 9. Existe-t-il une extension générique non-effacée pour le compilateur Java disponible en tant qu'extension de compilateur tierce?
- 10. Compilateur Java ASN.1
- 11. Compilateur Java sous Ubuntu
- 12. Compilateur en Java
- 13. Compilateur java personnalisé Eclipse
- 14. Que fait le compilateur Java avec plusieurs bornes génériques?
- 15. Run bibliothèque Boost avec le compilateur borland 5,82
- 16. Pourquoi le compilateur ne compile pas de ligne dans C++ Builder?
- 17. Java au compilateur JavaScript
- 18. Compilateur AOT Java gratuit
- 19. Repères du compilateur Java bytecode
- 20. Pourquoi cette utilisation de Java Generics n'est-elle pas compilée?
- 21. Pourquoi la bibliothèque compilée sur deux machines légèrement différentes se comporte-t-elle légèrement différemment?
- 22. Détecter le compilateur aveC#ifdef
- 23. Pourquoi je ne pouvais pas travailler avec le compilateur gcc sans '\ n' dans printf?
- 24. Pourquoi ne puis-je pas enregistrer cette méthode avec le compilateur PascalScript?
- 25. le compilateur ne semble pas accepter la classe d'agent
- 26. La version cible du compilateur java "jsr14" avec JDK7/8
- 27. Comment puis-je empêcher un projet java 1.4 d'utiliser une API spécifique 1.5/1.6?
- 28. Problème Microsoft.WindowsAzure.StorageClient.dll avec le compilateur Mono
- 29. IBM RAD avec Java 1.5 ne compile pas le code avec les génériques
- 30. solution de contournement pour GWT + Jetty JSP problème du compilateur? (Java 1.5 niveau source non reconnu)
Je ne vois pas où vous répondez à la question de * pourquoi *. Java 1.4 ne devrait-il pas remarquer que le fichier a utilisé un format non supporté? –
@Rob: Vous avez raison, j'ai mal lu la question entièrement. Je vais y remédier, alors. :-) –
@TJ votre commentaire n'explique pas possible rationnel. Merci. Je souhaite que la référence officielle était à portée de main. – tech20nn