Eclipse +Tomcat+JDK那些事

本文详细介绍了JDK、JRE、JVM之间的关系以及在Java开发环境中的作用。JDK是开发工具包,包含JRE,其中的JVM和类库构成JRE,是运行Java程序的基础。JRE仅包含运行环境,而JDK还包括开发工具。JVM作为Java跨平台的核心,解释执行字节码。Eclipse作为一个IDE,内置了JRE,但通常需要配置与项目匹配的JDK。Tomcat是一个基于Java的Web服务器,需要JRE运行,而Weblogic则需要JDK。了解这些概念有助于搭建和配置开发环境。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  

      最近开发过程和搭建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,因此对JAVA_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,将JAVA_HOME设置为JDK的路径即可。

       实际开发过程中,我们可以将已完成的项目直接放在Tomcat目录下的webapps中,重启Tocmat即可发布本项目,我们就可以在浏览器中访问我们发布好的程序了。

    

      对于java开发而言,

                JVM:执行编译好的class文件

                JRE:是运行环境

                JDK是必需的;

                Eclipse是辅助高效开发的工具;

                Tomact等服务器是开发后部署所必需的。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值