• jdk和jre是什么?都有什么用?(转帖)


    jdk和jre是什么?都有什么用?(转帖)

    文章分类:Java编程

    大家肯定在安装JDK的时候会有选择是否安装单独的jre,一般都会一起安装,我也建议大家这样做。
    由于这样更能帮助大家弄清楚它们的差别:

      Jre   是java   runtime   environment,   是java程序的执行环境。既然是执行,当然要包括jvm,也就是大家熟悉的虚拟机啦,   还有全部java类库的class文件,都在lib文件夹下打包成了jar。大家能够自己验证。至于在windows上的虚拟机是哪个文件呢?   学过MFC的都知道什么是dll文件吧,那么大家看看jre/bin/client里面是不是有一个jvm.dll呢?那就是虚拟机。

      Jdk   是java   development   kit,是java的开发工具包,里面包括了各种类库和工具。当然也包括了另外一个Jre.     那么为什么要包括另外一个Jre呢?并且jdk/jre/bin同一时候有client和server两个目录下都包括一个jvm.dll。   说明是有两个虚拟机的。这一点不知道大家是否注意到了呢?

      相信大家都知道jdk的bin下有各种java程序须要用到的命令,与jre的bin文件夹最明显的差别就是jdk下才有javac,这一点非常好理解,由于 jre仅仅是一个执行环境而已。与开发无关,正由于如此,具备开发功能的jdk自己的jre下才会同一时候有client性质的jvm和server性质的 jvm,   而仅仅作为执行环境的jre下仅仅须要client性质的jvm.dll就够了。

      记得在环境变量path中设置jdk/bin路径麽?这应该是大家学习Java的第一步吧,   老师会告诉大家不设置的话javac和java是用不了的。确实jdk/bin文件夹下包括了全部的命令。但是有没有人想过我们用的java命令并非 jdk/bin文件夹下的而是jre/bin文件夹下的呢?不信能够做一个实验,大家能够把jdk/bin文件夹下的java.exe剪切到别的地方再执行 java程序,发现了什么?一切OK!

      那么有人会问了?我明明没有设置jre/bin文件夹到环境变量中啊?

      试想一下假设java为了提供给大多数人使用,他们是不须要jdk做开发的,仅仅须要jre能让java程序跑起来就能够了,那么每一个客户还须要手动去环境变量设置多麻烦啊?所以安装jre的时候安装程序自己主动帮你把jre的java.exe加入到了系统变量中,验证的方法非常easy,大家看到了系统环境变量的 path最前面有“%SystemRoot%/system32;%SystemRoot%;”这种配置,那么再去Windows/system32以下去看看吧,发现了什么?有一个java.exe。

     假设强行可以把jdk/bin挪到system32变量前面,当然也可以迫使使用jdk/jre里面的java,只是除非有必要,我不建议大家这么做。使用单独的jre跑java程序也算是客户环境下的一种測试。

    这下大家应该更清楚jdk和jre内部的一些联系和差别了吧?

  • 相关阅读:
    Unix环境中的刷新
    C++ 的类型转换方法
    系统对信号的三种处理方式
    进程原语与线程原语的比较
    C和C++对带空参数列表的函数声明的不同处理
    函数指针
    字符串化的预处理器特征
    调试技巧
    信号产生的条件
    结构体大小问题
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/3947236.html
Copyright © 2020-2023  润新知