现在的位置: 首页 > 综合 > 正文

Java SDK 深入研究

2014年01月16日 ⁄ 综合 ⁄ 共 2124字 ⁄ 字号 评论关闭

       现在研究下java SDK

      我在本机安装的是JDK6,安装完成后不做任何配置,则在命令提示符中输入

Java.exe 得到如下结果。

       上面的告诉我们 -client, -server, -version等这些选项都包括,这些来调整java程序运行时所使用的java虚拟机

但我们输入java -version时出现下面结果

当我们输入java -server -version时出现下面结果

意思是说找不到java的虚拟机,虽然屏幕上有选项,可是却不能使用

我们此时输入:

path=C:\Java\jdk1.6.0\bin

然后:

          现在都没有出错了,可以找到java虚拟机。为什么会出现这样的原因呢?我们先来看下JDKJREJVM之间的关系。

          JDKjava开发套件。JDKjava开发工具包,基本上每个学java的人都会先在机器上装一个JDK,那他都包含哪几部分呢?让我们看一下JDK的安装目录。在目录下面有 六个文件夹、一个src类库源码压缩包、和其他几个声明文件。其中,真正在运行java时起作用的是以下四个文件夹:binincludelib、 jre。现在我们可以看出这样一个关系,JDK包含JRE,而JRE包含JVM

       bin:最主要的是编译器(javac.exe)

       include:javaJVM交互用的头文件

       lib:类库

       jre:java运行环境

(注意:这里的binlib文件夹和jre里的binlib是不同的)总的来说JDK是用于java程序的开发,jre则是只能运行class而没有编译的功能。

        

      JREjava执行环境,包括JVMJRE是指java运行环境。光有JVM还不能成class的执行,因为在解释class的时候JVM需要调用解释所需要的类库lib。在JDK的安装目 录里你可以找到jre目录,里面有两个文件夹binlib,在这里可以认为bin里的就是jvmlib中则是jvm工作所需要的类库,而jvm和 lib和起来就称为jre。所以,在你写完java程序编译成.class之后,你可以把这个.class文件和jre一起打包发给朋友,这样你的朋友就 可以运行你写程序了。(jre里有运行.classjava.exe

     JRE 是 Sun 公司发布的一个更大的系统,它里面就有一个 JVM 。 JRE 就与具体的 CPU 结构和操作系统有关,我们从 Sun 下载 JRE 的时候就看到了不同的各种版本。同 JVM 一起组成 JRE 的还有一些 API (如 awt , swing 等)。 JRE 是运行 Java 程序必不可少的。

     JRE ( Java Runtime Environment ),是运行 Java 程序必不可少的(除非用其他一些编译环境编译成.exe可执行文件……),JRE的地位就象一台PC机一样,我们写好的Win32应用程序需要操作系统帮 我们运行,同样的,我们编写的Java程序也必须要JRE才能运行。

     JRE里面有一个 JVM , JRE 与具体的 CPU 结构和操作系统有关,我们从 Sun 下载 JRE 的时候就看到了不同的各种版本,,同 JVM 一起组成 JRE 的还有一些 API (如 awt , swing 等), JRE 是运行 Java 程序必不可少的.

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

        JVM是 Java平台的基础,和实际的机器一样,它也有自己的指令集,并且在运行时操作不同的内存区域。 JVM通过抽象操作系统和 CPU结构,提供了一种与平台无关的代码执行方法,即与特殊的实现方法、主机硬件、主机操作系统无关。但是在一些小的方面, JVM的实现也是互不相同的,比如垃圾回收算法,线程调度算法(可能不同 OS有不同的实现)。 

       JVM的主要工作是解释自己的指令集(即字节码)到 CPU的指令集或 OS的系统调用,保护用户免被恶意程序骚扰。 JVM对上层的 Java源文件是不关心的,它关注的只是由源文件生成的类文件( class file)。类文件的组成包括 JVM指令集,符号表以及一些补助信息。

       总的来说

JRE就像一台pc机一样,执行我们编写好的应用程序,然后有jvm调用系统的接口来执行class文件。

    那么在同一个电脑中几个不同版本的SDK时,寻找JVM的是

1,自己目录下有无jre目录

2,父目录下的jre目录

3,查询 windows Register(HKEY_LOCAL_MACHINE\Software\JavaSoft\Java Runtime Environment\

抱歉!评论已关闭.