2009-10-29 3 views
32

Ho bisogno di compilare una compilation con un JRE speciale che è stato "personalizzato".In che modo Eclipse compila le classi con solo un JRE?

Eclipse è in grado di compilare le classi con questo JRE, ma ho bisogno di creare uno script di compilazione all'esterno di Eclipse.

Qual è il metodo utilizzato da Eclipse per generare i file .class senza JDK?

risposta

45

Eclipse è dotato di un proprio compilatore per i seguenti motivi:

  • compilazione incrementale (può compilare solo le parti modificate del progetto che può significare più che la quantità di file appena salvato, per esempio, quando hai modificato alcuni globali)
  • Il compilatore Eclipse può creare un file di classe anche se il codice contiene errori. Ciò consente di eseguire il progetto anche se non tutto viene compilato.
  • Il compilatore fornisce a Eclipse un AST in modo che possa eseguire tutti i tipi di cose di fantasia (come la struttura, mostrare tutti i punti in cui viene utilizzata la variabile sotto il cursore, ecc.) Senza costi aggiuntivi (ad es. è necessario eseguire il compilatore e un altro parser).
+12

C'è persino la documentazione su come eseguire il compilatore Eclipse come applicazione autonoma all'esterno di Eclipse: http://help.eclipse.org/galileo/topic/org.eclipse.jdt.doc.isv/guide/jdt_api_compile.htm –

+0

Accettato grazie al commento di Joachim. Ho trovato lo stesso link che fornisce una descrizione completa su come utilizzare la classe BatchCompiler. – glmxndr

+0

Grazie per la spiegazione. Dove hai trovato quell'informazione? È molto difficile per me trovare informazioni sulle funzionalità del compilatore di Eclipse. –

5

Credo che Eclipse sia dotato di compilatori interni e che sia possibile scegliere la compatibilità tra Java 1.3 e 1.6 (consultare il menu Preferenze, sotto Java-> Compilatore). Quindi Eclipse non ha bisogno di un JDK esterno da compilare, perché è dotato di autosufficienza.

Se si desidera creare uno script di compilazione all'esterno di Eclipse, è necessario un compilatore esterno, come quello fornito con il JDK reale.

-1

Eclipse è stato originariamente creato da IBM. Eclipse ha il proprio compilatore Java integrato basato sul compilatore Java IBM, Jikes.

+0

Non penso che il compilatore di Eclipse sia basato su Jikes. Potrebbe benissimo esserne ispirato, ma poiché jikes è implementato in C++ e il compilatore Eclipse è puro Java, dubito che abbiano ereditato parti importanti del codice. –

+0

Ok, se è così allora il compilatore Eclipse non è esattamente Jikes. Almeno entrambi hanno avuto origine da IBM. – Jesper

2

Per il caso uno è interessato: il compilatore di Eclipse fa parte di JDT core.