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内部的一些联系和差别了吧?

jdk和jre是什么?都有什么用?(转帖)的更多相关文章

  1. jdk和jre是什么?都有什么用?

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

  2. JDK、JRE 和 JVM 的区别

    JDK JDK 是 Java Development Kit 的缩写,JDK 是 Java 语言的软件开发工具包( SDK ).它提供了Java 开发.编译.运行需要的文件和环境. 如果你是 Java ...

  3. jdk与jre与jdk都是干什么的有什么区别和jvm详解:

    1.0,jdk与jre和jvm的区别: JDK(Java Development Kit):指的是Java开发工具集.JDK是整个Java的核心,包括了Java基础类库.Java运行环境(JRE)和J ...

  4. J2EE,J2SE,J2ME,JDK,SDK,JRE,JVM区别

    转自:http://www.metsky.com/archives/547.html 一.J2EE.J2SE.J2ME区别 J2EE——全称Java 2 Enterprise Edition,是Jav ...

  5. Java2_java入门时的一些基本概念的理解(j2ee,j2se,j2me,jdk,sdk,jre,jvm,跨平台)

    什么是SDK呢? Software Develop Kit的简称,顾名思义就是软件开发包.软件开发商实现底层模块,并对其进行类库封装,配置成高级别的开发环境,为程序员上层的程序开发提供支持.譬如Goo ...

  6. XAMPP里tomcat启动报错:Make sure you have Java JDK or JRE installed and the required ports are free

    以前用XAMPP的时候就是自然而然装好了就可以用,最近重装了新系统,打算在Windows 10里面配置Apache tomcat.PHP.MySQL的开发环境,迟迟试验不成功,于是直接用了XAMPP, ...

  7. jdk 与jre的区别

    jdk就是java的开发工具集,顾名思义就是你做开发用的,其中包括javac,也就是java compiler等. jre(java runtime environment),就是java程序的运行环 ...

  8. jdk、jre、jvm的关系

    JDK里面的工具也是用JAVA编写的,它们本身运行的时候也需要一套JRE,如C:\Program Files\Java\jdk1.5.x\目录下的JRE.而C:\Program Files\Java\ ...

  9. jdk与jre的区别

    很多程序员已经干了一段时间java了依然不明白jdk与jre的区别.JDK就是Java Development Kit.简单的说JDK是面向开发人员使用的SDK,它提供了Java的开发环境和运行环境. ...

随机推荐

  1. C连接MySQL数据库开发之Linux环境完整示例演示(增、删、改、查)

    一.开发环境 ReadHat6.3 32位.mysql5.6.15.gcc4.4.6 二.编译 gcc -I/usr/include/mysql -L/usr/lib -lmysqlclient ma ...

  2. Android 常用权限

    添加WiFi以及访问网络的权限: <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" ...

  3. 通过live555实现H264 RTSP直播

    http://blog.csdn.net/firehood_/article/details/16844397

  4. ANDROID_MARS学习笔记_S04_008_用Listview、自定义adapter显示返回的微博数据

    一.简介 运行结果 二.代码1.xml(1)activity_main.xml <?xml version="1.0" encoding="utf-8"? ...

  5. 用JAVA 查询 Active Directory(AD)

    Required Details LDAP address (For e.g.: myjeeva.com or IP of the Domain Controller/Global Catalog[G ...

  6. POJ_3045_Cow_Acrobats_(贪心)

    描述 http://poj.org/problem?id=3045 n头牛,每头牛都有重量w[i]和力量s[i].把这n头牛落起来,每头牛会有一个危险值,危险值是它上面所有牛的重量和减去它的力量.求危 ...

  7. 非常有用的Java程序片段

    1.向文件末尾添加内容 BufferedWriter out = null; try { out = new BufferedWriter(new FileWriter(”filename”, tru ...

  8. Linux实时将所有输出重定向到文件

    Linux的重定向机制十分好用,我们经常需要在服务器上挂起一个服务程序,然后将该程序的所有输出重定向到某个文件,这样即使我们注销了用户,程序依然在linux服务器上运行着. 但是重定向的输出经常无法实 ...

  9. Maven学习:常用mvn命令

    转自:http://blog.csdn.net/lfsfxy9/article/details/12200915 Maven 在线: <span style="font-family: ...

  10. 【转】qtp安装时问题

    1.安装qtp后要重启机器. 2.插件选择错误, 处理方式:重新启动QTP,勾选 WEB插件; 3.在安装QTP后,或者禁用IE浏览器里的一些ActiveX控件后,正常录制QTP时,对象识别不了;(保 ...