Eclipse自身使用ecj来编译java代码,而不是JDK的java编译器,是为了便于Eclipse对代码解析过程进行处理并且不必须要求JDK(Eclipse通过ecj可在只具有JRE的环境上对代码进行编译运行)
但ecj编译器仍然需要有JRE(不一定是JDK,JRE即可,除非需要JDK提供的Tools开发包)提供相应版本的Java类库。Eclipse自身不带JDK(MyEclipse等商业版本除外,这一类带的JDK版本自查发行网站)。
另外,由于Eclipose本身也是使用Java进行开发的,所以Eclipse的运行需要机器有JRE环境。
引用来自“逝水fox”的评论
Eclipse自身使用ecj来编译java代码,而不是JDK的java编译器,是为了便于Eclipse对代码解析过程进行处理并且不必须要求JDK(Eclipse通过ecj可在只具有JRE的环境上对代码进行编译运行)
但ecj编译器仍然需要有JRE(不一定是JDK,JRE即可,除非需要JDK提供的Tools开发包)提供相应版本的Java类库。Eclipse自身不带JDK(MyEclipse等商业版本除外,这一类带的JDK版本自查发行网站)。
另外,由于Eclipose本身也是使用Java进行开发的,所以Eclipse的运行需要机器有JRE环境。
JDK:JavaDevelopmentToolKit(Java
开发工具包
)
。
JDK
是整个
JAVA
的核心,包括了
Java
运行环境(
JavaRuntimeEnvirnment
),一堆
Java
工具(
javac/java/jdb
等)和
Java
基础的类库(即
JavaAPI
包括
rt.jar)。
JRE:Java
Runtime
Enviromental(java
运行时环境
)。
也就是我们说的
JAVA
平台,所有的
Java
程序都要在
JRE
下才能运行。包括
JVM
和
JAVA
核心类库和支持文件。与JDK相比,它不包含开发工具——编译器、调试器和其它工具。
JVM:JavaVirtualMechinal(JAVA
虚拟机
)
。JVM是
JRE
的一部分,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
JVM
有自己完善的硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。
JVM
的主要工作是解释自己的指令集(即字节码)并映射到本地的
CPU
的指令集或
OS
的系统调用。Java语言是跨平台运行的,其实就是
不同的操作系统,使用不同的
JVM
映射规则,让其与操作系统无关,完成了跨平台性
。
JVM
对上层的
Java
源文件是不关心的,它关注的只是由源文件生成的类文件(
classfile
)。