步步深入Java(三)—开发基础

一、JDK & JRE& JVM关系

1. JDK(Java Software Develop Kit),后改为Java Develop Kit。是面向开发人员使用的SDK,它提供了Java的开发环境和运行环境。SDKSoftware Development Kit 一般指软件开发包,可以包括函数库、编译程序等。

2. JRE(Java RuntimeEnvironment,Java运行环境),也就是Java平台。所有的Java程序都要在JRE下才能运行。JDK的工具也是Java程序,也需要JRE才能运行。为了保持JDK的独立性和完整性,在JDK的安装过程中,JRE也是安装的一部分。所以,在JDK的安装目录下有一个名为jre的目录,用于存放JRE文件。

3. JVM -- java virtualmachineJVM就是我们常说的java虚拟机,它是整个java实现跨平台的最核心的部分,所有的java程序会首先被编译为.class的类文件,这种类文件可以在虚拟机上执行,也就是说class并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解释给本地系统执行。Java语言最重要的特点就是跨平台运行。使用JVM就是为了支持与操作系统无关,实现跨平台。

    jre只是jdk的一个部分,我们只要拥有了一份jdk就可以进行java程序开发了,而顾名思义,jrejava运行的时候所依赖的平台,jvm则更只是jre的一个部分,jre除了虚拟机外还提供了众多链接库,这些库会被jvm在运行时调用

步步深入Java(三)—开发基础_第1张图片

 

    我们开发的实际情况是:我们利用JDK开发了属于我们自己的JAVA程序后,通过JDK中的编译程序(javac)将我们的文本java文件编译成JAVA字节码,在JRE上运行这些JAVA字节码,JVM解析这些字节码,映射到CPU指令集或OS的系统调用。

总结:

   jdk相当于是一个编译器。 

    jre是运行环境,相当于jvm虚拟机。jdk开发出来的java程序必须在jvm中运行,jre就提供了这么一个环境。 


    Sun公司给我们提供了两套jre

1JDK自带

    在JDK的安装目录里你可以找到jre目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和lib和起来就称为jre。所以,在你写完java程序编译成.class之后,你可以把这个.class文件和jre一起打包发给朋友,这样你的朋友就可以运行你写程序了。

2)安装在CJava文件夹下

    用来执行我们自己所撰写的java应用程序的.    

   

总的来说:只是运行java程序,我们可以只安装JRE,无须安装JDK


二、java javac

步步深入Java(三)—开发基础_第2张图片

    JavacJava编译器,将Java源代码转换成字节码。

    JavaJava解释器,直接从类文件执行Java应用程序字节代码

三、path & classpath


path:Windows操作系统根据Path环境变量来查找命令

classpath:是为java程序所用到的库文件所设的。


classpath的作用?

   当使用“java java类名”命令运行Java程序时,Jre会在当前路径下搜索Java类。但JDK1.4之前没有设计这个功能,需要在ClassPath环境变量中添加一点(.),用以告诉JRE需要在当前路径下搜索Java类。所以JDK1.4以前版本JDK编译和运行Java程序,常常需要把ClassPath的值为:.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar。无论使用那个版本的JDK,,Jre会按该环境变量指定的路径来搜索Java类。


你可能感兴趣的:(步步深入Java(三)—开发基础)