2009-10-29 30 views
32

Necesito hacer una compilación con un JRE especial que ha sido "personalizado".¿Cómo compila Eclipse las clases con solo un JRE?

Eclipse puede compilar las clases con este JRE, pero necesito crear un script de compilación fuera de Eclipse.

¿Cuál es el método utilizado por Eclipse para generar los archivos .class sin un JDK?

Respuesta

45

Eclipse viene con su propio compilador por las siguientes razones:

  • compilación incremental (puede compilar sólo las partes modificadas del proyecto que puede significar más que la cantidad de archivos que acaba de guardar, por ejemplo, cuando ha cambiado algunos globales)
  • El compilador de Eclipse puede crear un archivo de clase incluso cuando el código contiene errores. Esto permite ejecutar el proyecto aunque no todo se compila.
  • El compilador proporciona a Eclipse un AST para que pueda hacer todo tipo de cosas elegantes (como el esquema, mostrarle todos los lugares donde se usa la variable debajo del cursor, etc.) sin costo adicional (es decir, no tiene que ejecutar el compilador y otro analizador).
+12

Incluso hay documentación sobre cómo ejecutar el compilador de Eclipse como una aplicación independiente fuera de Eclipse: http://help.eclipse.org/galileo/topic/org.eclipse.jdt.doc.isv/guide/jdt_api_compile.htm –

+0

Aceptado gracias al comentario de Joachim. Encontré el mismo enlace que proporciona una descripción completa sobre cómo usar la clase BatchCompiler. – glmxndr

+0

Gracias por una buena explicación. ¿Dónde encontraste esa información? Para mí es muy difícil encontrar información sobre las características del compilador de Eclipse. –

5

Creo que Eclipse viene con compiladores internos, y puede elegir la compatibilidad con Java 1.3 a 1.6 (consulte el menú Preferencias, en Java-> Compiler). Por lo tanto, Eclipse no necesita un JDK externo para compilar, ya que se trata de autosuficiente.

Si desea crear un script de construcción fuera de Eclipse, necesitará un compilador externo, como el que viene con el JDK real.

-1

Eclipse fue creado originalmente por IBM. Eclipse tiene su propio compilador incorporado de Java que se basa en el compilador de Java de IBM, Jikes.

+0

No creo que el compilador de Eclipse se base en Jikes. Puede muy bien inspirarse, pero como jikes está implementado en C++ y el compilador de Eclipse es puramente Java, dudo que hayan heredado las principales partes del código. –

+0

Ok, si eso es así, entonces el compilador de Eclipse no es exactamente Jikes. Al menos ambos se originaron en IBM. – Jesper

2

Para el caso uno está interesado: el compilador de Eclipse es parte de JDT core.

Cuestiones relacionadas