ang GCJ

Éditeur : GNU   +
Mise à jour le : 27/07/2011  ·   Licence : Autre  ·   Téléchargé 31 fois   ·  

Commentaires La discussion sur le forum
Présentation
GCJ est un compilateur Java permettant de compiler son code directement en code natif. C'est-à-dire éxécutable sans JVM. Ce compilateur est développer par la fondation GNU.
Téléchargement
Compatibilité
Linux Mac Windows  


 Poster une réponse

Avatar de Mobius Mobius
http://www.developpez.com
Membre éprouvé
le 14/01/2011 14:14
Je commence à m'intéresser à ce compilateur.
Je cherche le moyen de transformer un fichier .class contenant du bytecode en un autre fichier .class contenant du code natif.
Sais tu si c'est possible ?
Avatar de adiGuba adiGuba
http://www.developpez.com
Expert Confirmé Sénior
le 16/01/2011 10:03
Salut,

Citation Envoyé par Mobius  Voir le message
en un autre fichier .class contenant du code natif.

Ce n'est pas possible... Enfin en tout cas le résultat ne pourra pas être un fichier .class mais un fichier natif dépendant du système d'exploitation et de l'architecture matérielle.

Pourquoi cherches-tu à faire cela ?

a++
Avatar de Mobius Mobius
http://www.developpez.com
Membre éprouvé
le 16/01/2011 10:18
Citation Envoyé par adiGuba  Voir le message
Ce n'est pas possible... Enfin en tout cas le résultat ne pourra pas être un fichier .class mais un fichier natif dépendant du système d'exploitation et de l'architecture matérielle.

Pourquoi cherches-tu à faire cela ?

C'est pour faire de l'Ahead of time (AOT) compilation. C'est à dire de précompiler les class java (un peu comme pour le faire la compilation "Just In Time" (JIT) ).
J'ai besoin d'effectuer cela dans un contexte de Java temps réel.

En approfondissant mes recherche j'ai vu un utilitaire aot-compile fournis avec GCJ qui permetterai de faire ce que je cherche. Par contre je n'arrive pas a le faire fonctionner pour le moment.
Avatar de adiGuba adiGuba
http://www.developpez.com
Expert Confirmé Sénior
le 16/01/2011 10:31
Ben l'AOT consiste à générer un fichier binaire natif, donc plus de fichier .class mais un fichier dépendant du système. Donc il suffirait de compiler avec GCJ...

Maintenant pour du temps-réel il y a d'autres contraintes qui pourrait poser problème comme le GarbageCollector, mais je ne maitrise pas trop tout cela.

a++
Avatar de Mobius Mobius
http://www.developpez.com
Membre éprouvé
le 16/01/2011 23:26
GCJ permet en effet de compiler l'application dans son ensemble pour générer une application. Le problème c'est que sur le projet sur lequel je travail, certaines contraintes m'empêche de compiler l'application dans son ensemble.
Certaine portion de code que je sais critique doivent être compilé afin de limiter les latences induite par l'interprétation du bytecode par la JVM.

Pour y arrivé j'ai pensé à l'AOT qui pour moi consistait à remplacer des classes contenant du bytecode par des classes contenant du code natif (et bien sur dépedant du système). Par ailleur, j'ai lu plusieurs article qui indiquait que cela était faisable. Je ne sais cependant toujours pas comment.
J'ai lu récement un article qui indique que l'utilitaire "javat" rend ce service pour des système IRIX.
javat takes a Java .class file (the file that contains the byte code that implements the methods of a class), reads and converts the byte codes into native MIPS instructions and stores the translated code back into the .class file along with the byte code.

Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.
 
 
 
 
Partenaires

PlanetHoster
Ikoula