Article de reference

Compilateur Java

Un compilateur Java est un compilateur pour le langage de programmation Java . Certains compilateurs Java produisent du code machine optimisé pour une combinaison matérielle/ sy...

Un compilateur Java est un compilateur pour le langage de programmation Java .

Certains compilateurs Java produisent du code machine optimisé pour une combinaison matérielle/ système d'exploitation particulière , appelée système informatique spécifique au domaine . Le compilateur GNU pour Java , aujourd'hui abandonné, en est un exemple .

La forme de sortie la plus courante d'un compilateur Java est constituée de fichiers de classe Java contenant une représentation intermédiaire multiplateforme (IR), appelée bytecode Java .

La machine virtuelle Java (JVM) charge les fichiers de classe et interprète le bytecode ou le compile à la volée en code machine , puis éventuellement l'optimise à l'aide de la compilation dynamique .

Une norme sur la manière d'interagir avec les compilateurs Java a été spécifiée dans JSR 199.

Il est fourni par le modulejdk.compiler et nécessite le kit de développement Java complet (et non pas seulement l' environnement d'exécution Java ) et réside dans l' javax.tools.*espace de noms.

Exemple

paquet org.wikipedia.examples ;import java.io.IOException ; import java.io.File ;import javax.tools.JavaCompiler ; import javax.tools.ToolProvider ;public class Example { private final String TEST_FILE_NAME = "Test.java" ;public static void main ( String [] args ) throws IOException { File sourceFile = new File ( TEST_FILE_NAME ); if ( ! sourceFile.exists ( ) ) { throw new IllegalArgumentException ( String.format ( " Le chemin du fichier %s n'existe pas !" , TIME_FILE_NAME ) ) ; } JavaCompiler compiler = ToolProvider.getSystemJavaCompiler ( ) ;if ( compiler == null ) { throw new RuntimeException ( "Compilateur non disponible. Utilisez-vous un JRE au lieu d'un JDK ?" ); }int résultat = compiler.run ( null , null , null , sourceFile ) ;System.out.printf ( " Résultat de la compilation : %s%n" , result == 0 ? " Succès" : " Échec" ); } }