Différences lors de la compilation Java avec le compilateur GNU pour Java au lieu du Sun JDK

StackOverflow https://stackoverflow.com/questions/1690617

  •  18-09-2019
  •  | 
  •  

Question

Je travaille sur un projet d'école où je suis obligé d'utiliser le compilateur GNU pour Java. J'ai toujours travaillé à l'aide du JDK officiel Sun et maintenant je suis préoccupé par les différences qui pourraient compliquer mon travail.

Je suis particulièrement intéressé par la version de Java est celui pris en charge par le dernier compilateur GCJ

Quelqu'un pourrait-il faire la lumière dans les différences entre l'un ou l'autre?

PS: J'ai cherché sur google, mais a échoué à trouver une réponse récente

Était-ce utile?

La solution

Depuis gcj est un compilateur au-dessus de GNU Classpath vous avez besoin des différences entre les officiels et JDK GNU Classpath. SUN JDK 1.4 voir cette pour SUN JDK 1.5, voir celui-ci à la place.

Autres conseils

Si cette réponse devrait être la réponse le plus voté, cela signifie que vous devriez demander à votre prof de bien vouloir reconsidérer pourquoi il fait que vous utilisez une telle plate-forme inhabituelle. Dans le monde réel, les gens utilisent principalement Sun JDKs. Je ne vois pas ce changement beaucoup plus dans un avenir proche. Il est un produit de qualité, pour la plupart.

Peut-ce vraiment vous aider à apprendre?

Eh bien de sa page d'accueil:

http://gcc.gnu.org/java/

Compiled applications are linked with the GCJ runtime, libgcj, which provides the core 
class libraries, a garbage collector, and a bytecode interpreter. libgcj can dynamically 
load and interpret class files, resulting in mixed compiled/interpreted applications. It 
has been merged with GNU Classpath and supports most of the 1.4 libraries plus some 1.5 
additions. 

Depuis le site Web GCJ. Il semble que le compilateur GNU est un compilateur en avance sur le temps et non un compilateur juste à temps comme de Sun. Donc, il y a une différence là. La première page est un peu vague et les références qu'il a quelques installations d'interprétation byte-code intégré dans le moteur d'exécution libgcj.

Je serais méfiant de toute bibliothèque qui couvre la plupart des bibliothèques 1.4 et 1.5. Si vous ciblez votre 1.4 probablement bien. 1.6 et vous êtes probablement dans un monde de souffrance.

Gardez à l'esprit si GCJ ne peut qu'interpréter les fichiers de classe, alors il pourrait être en cours d'exécution beaucoup plus lent que le code non compilé le compilateur JIT de Sun.

J'ai couru des différences subtiles dans la date d'analyse syntaxique dernière fois que je regardais.

la machine virtuelle Java gnu n'a pas passé le Java TCK vous devez essentiellement le traiter comme une nouvelle plate-forme avec des tests complets nécessaires.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top