jdk和jre有什么区别?

http://zhidao.baidu.com/link?url=bdqbxJMbGctI-eXmYfQ4_A9nRYe7P5G7p45eKMTNBMWyW0pgy6k6EZLsUI6Oukb3EymQALD2jiiGmBcxFesRUa

jdk和jre有什么区别?

 分享| 2008-06-04 09:51达人掌门人 | 浏览 127896 次

他们的安装目录有什么关系呢?谢谢

举报| 2008-06-04 09:53

#2016年高质量新标准全面升级!#

提问者采纳

简单的说JDK是面向开发人员使用的SDK,它提供了Java的开发环境和运行环境。SDK是Software Development Kit 一般指软件开发包,可以包括函数库、编译程序等。 JDK就是Java Development Kit JRE是Java Runtime Enviroment是指Java的运行环境,是面向Java程序的使用者,而不是开发者。 

如果安装了JDK,会发同你的电脑有两套JRE,一套位于 \jre 另外一套位于 C:\Program Files\Java\j2re1.4.1_01 目录下,后面这套比前面那套少了Server端的Java虚拟机,不过直接将前面那套的Server端Java虚拟机复制过来就行了。而且在安装JDK可以选择是否安装这个位于 C:\Program Files\Jav a 目录下的JRE。如果你只安装JRE,而不是JDK,那么只会在 C:\Program Files\Java 目录下安装唯一的一套JRE。 

JRE的地位就象一台PC机一样,我们写好的 Win32应用程序需要操作系统帮我们运行,同样的,我们编写的Java程序也必须要JRE才能运行。所以当你装完JDK后,如果分别在硬盘上的两个不同地方安装了两套

JRE,那么你可以想象你的电脑有两台虚拟的Java PC机,都具有运行Java程序的功能。所以我们可以说,只要你的电脑安装了JRE,就可以正确运行Jav a应用程序。 

1、为什么Sun要让JDK安装两套相同的JRE?这是因为JDK里面有很多用Java所编写的开发工具(如javac.exe、jar.exe等),而且都放置在 \lib\tools.jar 里。从下面例子可以看出,先将tools.jar改名为tools1.jar,然后运行javac.exe,显示如下结果: Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/tools/javac /Main 这个意思是说,你输入javac.exe与输入 java -cp c:\jdk\lib\tools.jar com.sun.tools.javac.Main 是一样的,会得到相同的结果。从这里我们可以证明javac.exe只是一个包装器(Wrapper),而制作的目的是为了让开发者免于输入太长的指命。而且可以发现\lib目录下的程序都很小,不大于2 9K,从这里我们可以得出一个结论。就是JDK里的工具几乎是用Java所编写,所以也是Java应用程序,因此要使用JDK所附的工具来开发Java程序,也必须要自行附一套JRE才行,所以位于C:\Program Files\Java目录下的那套JRE就是用来运行一般Java程序用的。 

2、如果一台电脑安装两套以上的JRE,谁来决定呢?这个重大任务就落在java.exe身上。Java.exe的工作就是找到合适的JRE来运行 Java程序。 Java.exe依照底下的顺序来查找JRE:自己的目录下有没有JRE;父目录有没有JRE;查询注册表: [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment] 所以java.exe的运行结果与你的电脑里面哪个JRE被执行有很大的关系。 

3、介绍JVM JRE目录下的Bin目录有两个目录:server与client。这就是真正的jvm.dll所在。 jvm.dll无法单独工作,当jvm.dll启动后,会使用explicit的方法(就是使用Win32 API之中的LoadLibrary()与GetProcAddress()来载入辅助用的动态链接库),而这些辅助用的动态链接库(.dll)都必须位于jvm.dll所在目录的父目录之中。因此想使用哪个JVM,只需要设置PATH,指向JRE所在目录底下的jvm.dll。
时间: 2024-12-11 07:31:45

jdk和jre有什么区别?的相关文章

JDK、JRE、JVM区别

今天浅学习了解jdk.jre.jvm的区别,特记录一下. jdk.jre.jvm的包含关系 原文地址:https://www.cnblogs.com/happylan/p/10467890.html

JDK 和 JRE 有什么区别?

JRE是Java Runtime Environment的缩写,顾名思义是java运行时环境,包含了java虚拟机,java基础类库. Jdk是Java Development Kit的缩写,顾名思义是java开发工具包,是程序员使用java语言编写java程序所需的开发工具包,是提供给程序员使用的.JDK包含了JRE,同时还包含了编译java源码的编译器javac,还包含了很多java程序调试和分析的工具:jconsole,jvisualvm等工具软件,还包含了java程序编写所需的文档和de

J2EE,J2SE,J2ME,JDK,SDK,JRE,JVM区别(转载)

转载地址:http://blog.csdn.net/alspwx/article/details/20799017 一.J2EE.J2SE.J2ME区别 J2EE--全称Java 2 Enterprise Edition,是Java的一种企业版,用于企业级应用开发. J2SE--全称Java 2 Standard Edition,是Java的标准版,用于标准应用开发,也是Java基础版本. J2ME--全称Java 2 Micro Edition,是Java的微型版,用于手机.PDA等嵌入式开发

002--JDK、JRE、JVM区别

jdk.jre.jvm区别 1.JDK Java Development ToolKit(Java开发工具包). JDK是整个JAVA的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API ). JDK有以下三种版本:J2SE标准版是我们通常用的一个版本:J2EE企业版使用这种JDK开发J2EE应用程序:J2ME主要用于移动设备.嵌入式设备上的java应用程序. 2.JRE Ja

记一次Eclipse关于JDK和JRE的问题

今天同事遇到个问题,发现import package居然报错,但是那个package实际上存在.一般情况某个类有问题或者是该类中的方法有问题,总会在IDE中显示一条红线.但是这次确实是没有问题.我找到该类所在的子模块,使用mvn install.这个错误我之前遇到过,光update project是没有用的,update project主要作用是同步.比如,我在父工程中加入其他第三方插件依赖,有些地方需要它,有的时候,明明已经导入该依赖,可是我却不能用它.这时,只需update project即

jdk与jre的区别

jdk就是java的开发工具集,顾名思义就是你做开发用的,其中包括javac,也就是java compiler等.jre(java runtime environment),就是java程序的运行环境.你所写的java程序在经过javac编译后会形成字符行文件,这个java的中间文件,计算机是看不懂的,而这个文件是给jvm(java的虚拟机)用的,由jvm进行解释后形成机器语言给计算机.而这个jvm就在jre中,也就是说java程序的运行要有jre来担当.所以jdk和jre的区别就是一个用于开发

经验分享-Java中JDK和JRE区别和误区详解!

1.了解基本的java概念.JDK和JRE基本了解 1.1)Java SE (原J2SE) Java Platform, Standard Edition    -- Java标准平台 1.2) Java EE (原J2EE) Java Platform, Enterprise Edition -- Java企业级应用平台 1.3)Java ME (原J2ME) Java Platform, Micro Edition      -- Java微系统应用平台 ##################

JDK,JRE,JVM的区别与联系

很多朋友跟我一样,已经使用Java开发很久了,可是对JDK,JRE,JVM这三者的区别与联系一直都是模模糊糊的,下面我们来总结一下. JDK Java Development ToolKit(Java开发工具包).JDK是整个Java的核心,包括了Java运行环境(Java Runtime Environment),一堆Java工具(javac/java/jdb)和Java基础类库(即Java API包括rt.jar).最流行的JDK是sun公司发布的JDK,除了sun之外,还有好多公司和组织都

jdk、jre与jvm的区别与联系

为了学习数据库,重装了系统,之前前一直在用eclipse,现在准备换成myeclipse,这之前当然需要重新设置环境变量,顺手写下有关jdk.jre与jvm的区别与联系以供交流参考. 首先来说一下JDK JDK(Java Development Kit) 是 Java 语言的软件开发工具包(SDK). JDK是整个JAVA的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API )