Eclipse +Tomcat+JDK那些事
2015-09-22 19:42
260 查看
最近开发过程和搭建Jenknis时,发现对JDK、Tomcat、Eclipse理解有些问题,具体的它们在整个开发环境中各起着什么作用。明白了之间的关系,才可以很清晰的搭建框架,或者部署开发环境。
JDK & JRE& JVM
JDK(JavaDevelopment Kit)
JDK是Java开发工具包,是SunMicrosystems针对Java开发员人的产品。
JDK中包含JRE,在JDK的安装目录下有一个名为jre的目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和lib和起来就称为jre。
·
bin目录(javac.exe将.java编译成.class文件)
Javac.exe:即java源文件的编译工具,java源文件的扩展名为.java,如Test.java,java源文件被编译后的java字节码文件的扩展名为.class
java.exe是java字节码编译程序,负责解释执行java字节码文件,就是一个JVM(java虚拟机)
include:java和JVM交互用的头文件
lib:java和JVM交互用的类库
jre:java运行环境(java.exe运行.class文件)
小结:
写Java程序的时候需要JDK,而JDK里面已经包含了JRE,因此对J***A_HOME设置为JDK的路径时也可以正常运行Java程序。
JRE(Java Runtime Environment)
是运行基于Java语言编写的程序所不可缺少的运行环境。也是通过它,Java的开发者才得以将自己开发的程序发布到用户手中,让用户使用。
JRE中包含了Java virtualmachine(JVM),runtime class libraries和Java applicationlauncher,这些是运行Java程序的必要组件。
JRE中由ClassLoader负责查找和加载程序引用到的类库,基础类库ClassLoader会到rt.jar中自动加载其它的类库,ClassLoader在环境变量CLASSPATH指定的路径中搜索,按照先来先到的原则,放在CLASSPATH前面的类库先被搜到,Java程序启动之前建议先把PATH和CLASSPATH环境变量设好。
PATH:OS通过PATH来找JRE,确定基础类库rt.jar的位置
CLASSPATH:JRE的ClassLoader通过CLASSPATH找其它类库。
JDK与JRE区别
JDK:开发环境
JRE:运行环境
为什么Sun要让JDK安装两套相同的JRE?
这是因为JDK里面有很多用Java所编写的开发工具(如javac.exe、jar.exe等),而且都放置在<JDK安装目录>/lib/tools.jar 里。JDK里的工具几乎是用Java所编写,所以也是Java应用程序,因此要使用JDK所附的工具来开发Java程序,也必须要自行附一套JRE才行,所以位于C:/ProgramFiles/Java目录下的那套JRE就是用来运行一般Java程序用的。
如果一台电脑安装两套以上的JRE,谁来决定呢?
Java.exe依照底下的顺序来查找JRE:
自己的目录下有没有JRE;
父目录有没有JRE;
小结:
JRE是Java运行环境,并不是一个开发环境,所以没有包含任何开发工具(如编译器和调试器),只是针对于使用Java程序的用户。
JVM(java virtual machine)
JVM就是我们常说的java虚拟机,它是整个java实现跨平台的最核心的部分,所有的java程序会首先被编译为.class的类文件,这种类文件可以在虚拟机上执行,也就是说class并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解释给本地系统执行。
但只有JVM还不能执行class文件,因为在解释class文件时,JVM需要调用解释所需要的类库lib。在JDK的安装目录里你可以找到jre目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和lib和起来就称为jre。
所以,在你写完java程序编译成.class之后,你可以把这个.class文件和jre一起打包发给别人,这样别人就可以运行你写程序了。(jre里有运行.class的java.exe)从而得出结论JRE是个运行环境,运行Java程序的时候就需要JRE。
运行原理:
java编译器只需面向JVM,生成JVM能理解的代码或字节码文件。Java源文件经编译器,编译成字节码程序,通过JVM将每一条指令翻译成不同平台机器码,通过特定平台运行,也就是经常提起的“一次编译,到处运行”。
区别
JRE也就是Java平台,所有的Java程序都要在JRE下才能运行。
JDK的工具也是Java程序,也需要JRE才能运行。为了保持JDK的独立性和完整性,在JDK的安装过程中,JRE也是安装的一部分。所以,在JDK的安装目录下有一个名为jre的目录,用于存放JRE文件。
JVM是JRE的一部分。它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。JVM有自己完善的硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。Java语言最重要的特点就是跨平台运行。使用JVM就是为了支持与操作系统无关,实现跨平台。
Eclipse
Eclipse 也就是所说的IDE,方便程序员编写代码的工具。是一个开放源代码的、基于Java的可扩展开发平台。可以将其看成一个框架和一组服务,用于通过插件组件构建开发环境。它自带有JDK,可以不额外装JDK,一般情况下我们会使用和项目符合的JDK(自己安装)。
为什么Eclipse只有JRE就可以正常运行?
在Eclipse中内嵌了Java编译器,并且与JDK中的javac完全相容,因此无须使用JDK也可以直接编译Java程序。
小结:
Eclipse中集成了JDK、Tomcat,只需要启动Tomcat时,配置好相应的JDK,即可将项目成功发布。我们就可以在浏览器中进行访问。Eclipse内嵌了Java编译器,可直接将.java文件编译成.class文件。
Tomcat
Tomcat是一个WEB服务器软件,我们将JSP或Servlet发布在其中。当有请求时,tomcat会自动将jsp里面的java程序部分提取出来,调用jdk将java程序编译成class,然后再执行这个class.
Tomcat本身就是java写的虽然说是一个服务器,可是本质上它还是一个普通的java程序,要运行java程序就需要java虚拟机.你单独下载一个jre即可运行tomcat
注:
为什么Tomcat需要用JRE就可以启动,Weblogic用JDK才能启动呢?
原因是Tomcat已经包括了一个源代码编译器,而Weblogic没有包括这个编译器包。
为什么需要编译器?
在WEB应用中JSP文件是需要转换成Servlet,这个Servlet文件还需要编译成可以在JRE上执行的class文件,因此必须提供有编译能力的JDK,将J***A_HOME设置为JDK的路径即可。
实际开发过程中,我们可以将已完成的项目直接放在Tomcat目录下的webapps中,重启Tocmat即可发布本项目,我们就可以在浏览器中访问我们发布好的程序了。
对于java开发而言,
JVM:执行编译好的class文件
JRE:是运行环境
JDK是必需的;
Eclipse是辅助高效开发的工具;
Tomact等服务器是开发后部署所必需的。
JDK & JRE& JVM
JDK(JavaDevelopment Kit)
JDK是Java开发工具包,是SunMicrosystems针对Java开发员人的产品。
JDK中包含JRE,在JDK的安装目录下有一个名为jre的目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和lib和起来就称为jre。
·
bin目录(javac.exe将.java编译成.class文件)
Javac.exe:即java源文件的编译工具,java源文件的扩展名为.java,如Test.java,java源文件被编译后的java字节码文件的扩展名为.class
java.exe是java字节码编译程序,负责解释执行java字节码文件,就是一个JVM(java虚拟机)
include:java和JVM交互用的头文件
lib:java和JVM交互用的类库
jre:java运行环境(java.exe运行.class文件)
小结:
写Java程序的时候需要JDK,而JDK里面已经包含了JRE,因此对J***A_HOME设置为JDK的路径时也可以正常运行Java程序。
JRE(Java Runtime Environment)
是运行基于Java语言编写的程序所不可缺少的运行环境。也是通过它,Java的开发者才得以将自己开发的程序发布到用户手中,让用户使用。
JRE中包含了Java virtualmachine(JVM),runtime class libraries和Java applicationlauncher,这些是运行Java程序的必要组件。
JRE中由ClassLoader负责查找和加载程序引用到的类库,基础类库ClassLoader会到rt.jar中自动加载其它的类库,ClassLoader在环境变量CLASSPATH指定的路径中搜索,按照先来先到的原则,放在CLASSPATH前面的类库先被搜到,Java程序启动之前建议先把PATH和CLASSPATH环境变量设好。
PATH:OS通过PATH来找JRE,确定基础类库rt.jar的位置
CLASSPATH:JRE的ClassLoader通过CLASSPATH找其它类库。
JDK与JRE区别
JDK:开发环境
JRE:运行环境
为什么Sun要让JDK安装两套相同的JRE?
这是因为JDK里面有很多用Java所编写的开发工具(如javac.exe、jar.exe等),而且都放置在<JDK安装目录>/lib/tools.jar 里。JDK里的工具几乎是用Java所编写,所以也是Java应用程序,因此要使用JDK所附的工具来开发Java程序,也必须要自行附一套JRE才行,所以位于C:/ProgramFiles/Java目录下的那套JRE就是用来运行一般Java程序用的。
如果一台电脑安装两套以上的JRE,谁来决定呢?
Java.exe依照底下的顺序来查找JRE:
自己的目录下有没有JRE;
父目录有没有JRE;
小结:
JRE是Java运行环境,并不是一个开发环境,所以没有包含任何开发工具(如编译器和调试器),只是针对于使用Java程序的用户。
JVM(java virtual machine)
JVM就是我们常说的java虚拟机,它是整个java实现跨平台的最核心的部分,所有的java程序会首先被编译为.class的类文件,这种类文件可以在虚拟机上执行,也就是说class并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解释给本地系统执行。
但只有JVM还不能执行class文件,因为在解释class文件时,JVM需要调用解释所需要的类库lib。在JDK的安装目录里你可以找到jre目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和lib和起来就称为jre。
所以,在你写完java程序编译成.class之后,你可以把这个.class文件和jre一起打包发给别人,这样别人就可以运行你写程序了。(jre里有运行.class的java.exe)从而得出结论JRE是个运行环境,运行Java程序的时候就需要JRE。
运行原理:
java编译器只需面向JVM,生成JVM能理解的代码或字节码文件。Java源文件经编译器,编译成字节码程序,通过JVM将每一条指令翻译成不同平台机器码,通过特定平台运行,也就是经常提起的“一次编译,到处运行”。
区别
JRE也就是Java平台,所有的Java程序都要在JRE下才能运行。
JDK的工具也是Java程序,也需要JRE才能运行。为了保持JDK的独立性和完整性,在JDK的安装过程中,JRE也是安装的一部分。所以,在JDK的安装目录下有一个名为jre的目录,用于存放JRE文件。
JVM是JRE的一部分。它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。JVM有自己完善的硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。Java语言最重要的特点就是跨平台运行。使用JVM就是为了支持与操作系统无关,实现跨平台。
Eclipse
Eclipse 也就是所说的IDE,方便程序员编写代码的工具。是一个开放源代码的、基于Java的可扩展开发平台。可以将其看成一个框架和一组服务,用于通过插件组件构建开发环境。它自带有JDK,可以不额外装JDK,一般情况下我们会使用和项目符合的JDK(自己安装)。
为什么Eclipse只有JRE就可以正常运行?
在Eclipse中内嵌了Java编译器,并且与JDK中的javac完全相容,因此无须使用JDK也可以直接编译Java程序。
小结:
Eclipse中集成了JDK、Tomcat,只需要启动Tomcat时,配置好相应的JDK,即可将项目成功发布。我们就可以在浏览器中进行访问。Eclipse内嵌了Java编译器,可直接将.java文件编译成.class文件。
Tomcat
Tomcat是一个WEB服务器软件,我们将JSP或Servlet发布在其中。当有请求时,tomcat会自动将jsp里面的java程序部分提取出来,调用jdk将java程序编译成class,然后再执行这个class.
Tomcat本身就是java写的虽然说是一个服务器,可是本质上它还是一个普通的java程序,要运行java程序就需要java虚拟机.你单独下载一个jre即可运行tomcat
注:
为什么Tomcat需要用JRE就可以启动,Weblogic用JDK才能启动呢?
原因是Tomcat已经包括了一个源代码编译器,而Weblogic没有包括这个编译器包。
为什么需要编译器?
在WEB应用中JSP文件是需要转换成Servlet,这个Servlet文件还需要编译成可以在JRE上执行的class文件,因此必须提供有编译能力的JDK,将J***A_HOME设置为JDK的路径即可。
实际开发过程中,我们可以将已完成的项目直接放在Tomcat目录下的webapps中,重启Tocmat即可发布本项目,我们就可以在浏览器中访问我们发布好的程序了。
对于java开发而言,
JVM:执行编译好的class文件
JRE:是运行环境
JDK是必需的;
Eclipse是辅助高效开发的工具;
Tomact等服务器是开发后部署所必需的。
相关文章推荐
- 监控Tomcat解决方案(监控应用服务器系列文章分享)
- jdk1.7 + ant1.9 + tomcat7 + nutch2.3 + solr5.3 + mysql5.6安装
- spring mvc + velocity 搭建实例程序maven版本并且使用的是tomcat容器而不是jetty(step by step)
- 关于SpringMVC+Spring+Hibernate+Tomcat内存溢出问题
- tomcat脚本启停
- tomcat/resin安装配置
- Eclipse导入外部项目无法识别为web项目并且无法在部署到tomcat下
- JavaWeb开发环境搭建Eclipse配置Tomcat
- myeclipse中tomcat 报异常总结
- Tomcat启动后加载两次servlet的问题
- Tomcat安装Windows系统服务配置
- 全面讲解Tomcat下SSL证书的配置(一)
- 用tomcat搭建web服务器
- 外网访问自己的tomcat
- java tomcat html5调试中需要关注的配置问题
- Tomcat使用-学习笔记
- 关于tomcat startup.bat启动后一闪而过的问题(转)
- Tomcat源码学习
- 在eclipse中把Tomcat 8删掉不能重建问题,启动Tomcat重置本地配置问题
- 设置TOMCAT启用GZIP压缩