tags:

views:

4060

answers:

3

Here is what I have:

JAVA_HOME=C:\Software\Java\jdk1.5.0_12 (points to JDK 5.0)

In Eclipse "Installed Runtimes" I have: jre 1.5.0_12 (points to JRE 5.0) jre 1.6.0_3 (points to JRE 6.0) (this one is default)

I do not have "javac" on my PATH (i.e. I cannot run javac -version from command line if I am not in JDK/bin).

My project is set to use jre 1.6.0_3 and compiler's Compliance Level is set to 6.0.

Question is: how Eclipse is able to compile my project? Where it finds a compiler for 6.0? Moreover, is there a way to tell precisely which compiler (i.e. path to javac) is used by Eclipse?

P.S. OS XP SP2 if it is relevant P.P.S. I do not have any -vm set in eclipse.ini. In eclipse I see eclipse.vm=C:\Program Files\Java\jre6\bin\client\jvm.dll and it is still a JRE.

+6  A: 

Eclipse has the JDT which includes the incremental compiler so it does not need an external one unless that is your wish :)

LenW
Actually, you can't replace the incremental compiler in the JDT with javac. I suppose you can use a standard javac for headless builds, but not in the IDE.
JesperE
+1  A: 

Eclipse is shipped with an built-in compiler. You can use an external JDK, if you configure it in the preferences.

Edit: Thanks to André!

furtelwart
That's not true, it's shipped with a compiler, but not with a jdk!
André
+1  A: 

Eclipse has a list of installed JRE's under window->preferences->java->Installed JRE's. The one selected as the default will be the one included with Eclipse, but you can easily add any other JRE's from this same preference pane, and select any default you wish.

This will be the system wide default, which can be overridden on a project by project basis from the Build Path->Libraries tab. To change, select Add Library->JRE System Library and choose from your configured JRE's. Then remove the library for the default.

Robin