2010-05-07 8 views

Répondre

0

À 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 ...

+0

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é? –

+0

@Rob: Vous avez raison, j'ai mal lu la question entièrement. Je vais y remédier, alors. :-) –

+0

@TJ votre commentaire n'explique pas possible rationnel. Merci. Je souhaite que la référence officielle était à portée de main. – tech20nn

Questions connexes