Un compilador de Java es un compilador para el lenguaje de programación Java .
Algunos compiladores de Java generan código máquina optimizado para una combinación particular de hardware y sistema operativo , denominada sistema informático específico de dominio . Un ejemplo sería el compilador GNU para Java , ahora descontinuado . [ 1 ]
La forma más común de salida de un compilador de Java son los archivos de clase de Java que contienen una representación intermedia multiplataforma (IR), llamada bytecode de Java . [ 2 ]
La máquina virtual de Java (JVM) carga los archivos de clase e interpreta el código de bytes o lo compila justo a tiempo a código máquina y luego posiblemente lo optimiza mediante compilación dinámica .
En JSR 199 se especificó un estándar sobre cómo interactuar con los compiladores de Java. [ 3 ]
Lo proporciona el módulojdk.compiler y requiere el Kit de Desarrollo de Java completo (a diferencia de solo el Entorno de Ejecución de Java ), y reside en el javax.tools.*espacio de nombres. [ 4 ]
Ejemplo
paquete 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 ( "¡La ruta del archivo %s no existe!" , TIME_FILE_NAME )); } JavaCompiler compiler = ToolProvider . getSystemJavaCompiler ();if ( compiler == null ) { throw new RuntimeException ( "Compilador no disponible. ¿Está ejecutando en un JRE en lugar de un JDK?" ); }int resultado = compilador.ejecutar ( null , null , null , archivoFuente ) ;System.out.printf ( " Resultado de la compilación: %s%n" , result == 0 ? " Éxito" : " Error" ); } }Véase también
- Lista de compiladores de Java
- javac , el compilador Java estándar en el JDK de Oracle
- Roslyn (compilador) , compilador para C# también invocable mediante programación.
Referencias
- ↑ "GCJ - pasado, presente y futuro" . Archivado del original el 2 de agosto de 2019. Consultado el 24 de septiembre de 2021 .
- ↑ "Especificación de la máquina virtual Java, edición Java SE 8, sección 1.2" . Archivado del original el 24 de septiembre de 2021. Consultado el 24 de septiembre de 2021 .
- ↑ "JSR 199: API del compilador JavaTM" . Archivado del original el 24/09/2021 . Consultado el 24/09/2021 .
- ↑ "JavaCompiler (Java SE)" . docs.oracle.com . Oracle Corporation . Consultado el 21 de octubre de 2025 .
Enlaces externos
- Página javac de OpenJDK de Sun
- Stephan Diehl, "Una introducción formal a la compilación de Java" , Software - Practice and Experience , vol. 28 (3), páginas 297-327, marzo de 1998.
- compiladores de Java
- Solicitudes de especificación de Java
- Esbozos de programación informática