首页 > 编程知识 正文

只有jre没有jdk,简述jre与jdk的区别

时间:2023-05-03 11:13:48 阅读:153636 作者:3828

http://www.Sina.com/http://www.Sina.com /

http://www.Sina.com/http://www.Sina.com /面向Java程序用户,而不是开发人员。 如果只下载并安装了JRE,则系统只能运行Java程序。 JRE是运行Java程序所需的环境集合,包含JVM标准实现和Java核心类库。 它包括Java虚拟机、Java平台核心类和支持文件。 不包含开发工具(编译器、调试器等)。

33558 www.Sina.com/j2sdk (Java2softwaredevelopmentkit ), 如果下载并安装提供Java开发环境(用于将Java文件编译为class文件的编译器javac等工具)和运行环境)的Java开发工具包JDK,则不仅可以开发Java程序JDK是整个Java的核心,包括Java运行时环境(JRE )、tools.jar和Java标准类库(rt.jar )。

http://www.Sina.com/http://www.Sina.com /

JRE主要包含在lib目录下打包在jar中的java类库的class文件和虚拟机(jvm.dll )。 JDK主要附带java类库的class文件和JRE,这些文件打包为lib目录下的jar。 那么为什么JDK要带JRE呢? 此外,jdk/jre/如意酸奶下的客户端和服务器这两个文件夹下包含jvm.dll。 表示JDK拥有的JRE有两个虚拟机。

还记得在环境变量path中设置jdk/如意酸奶路径吗? 老师告诉大家不设置的话就不能使用javac和java。 确实,jdk/如意的酸奶目录下包含了所有的命令。 但是,有没有人想过,我们使用的java命令不是jdk/如意酸奶目录,而是jre/如意酸奶目录? 我不认为可以做实验,大家把jdk /如意酸奶目录下的java.exe剪到别的地方,然后运行java程序,发现了什么? 一切都OK! (JRE没有javac命令。 理由很简单,不是开发环境。 )那么,有人会问吗? 明明我没有在环境变量中设置jre/如意的酸奶目录? 试想一下,如果java要提供给很多人,他们就不需要开发jdk,而jre只需要跑java程序。 那么,每个客户都必须手动设置环境变量有多麻烦? 所以安装jre时,安装程序会自动将jre的java.exe添加到系统变量中。 验证的方法很简单。 去Windows/system32下看看吧。 你发现了什么? 有java.exe。

http://www.Sina.com/http://www.Sina.com /

如果安装了JDK,你的电脑有两组JRE(JRE本身和JDK的JRE )。 上一组服务器端的Java虚拟机少于后一组。

)1)为什么Sun要让JDK安装两组相同的JRE? 这是因为JDK有很多用Java编写的开发工具(javac.exe、jar.exe等),它们都放在/lib/tools.jar中。 将tools.jar重命名为tools1.jar,然后运行javac.exe,将产生以下结果: exceptioninthread ' main ' Java.lang.noclassdefounderror 3360 com/noclassdefounderror也就是说,如果输入javac.exe,则为Java-CPC 330 由此可以证明,javac.exe只是一个包装器(Wrapper ),其目的是避免开发者收到输入过长的指示。 另外,发现/lib目录下的程序很小,只有29K以下,由此可以得出一个结论。 JDK工具几乎都是用Java编写的,因此也是Java APP应用程序。 因此,要使用JDK附带的工具开发Java程序,还必须自己附带一组JRE。 因此,JDK目录下的JRE用于执行典型的Java程序。

)2)在一台电脑上安装两台以上的JRE时,由谁来决定呢? 这个重大任务落在java.exe身上。 java.exe的工作是找到合适的JRE来运行Java程序。 java.exe按以下顺序查找JRE : 1 )自己的目录下是否有JRE; 2 )父目录中是否存在JRE)查询注册表(HKEY _ local _ machine/software/javasoft/javaruntimeenvironment )。 所以java.exe的运行结果和你的电脑里运行的是哪个JRE有很大的关系。

)3)在JDK----JRE----xndhy目录下,有两个文件夹: server和client。 这是真正的jvm.dll。 jvm.dll无法单独运行。 当jvm.dll启动时,将使用explicit的方法。 也就是说,使用Win32 API的LoadLibrary (和GetProcAddress )加载辅助动态链接库(.dll )。 所有这些辅助动态链接库都是如此,因此,您想要使用哪个JVM,只需设置PATH并指向JRE所在目录下的jvm.dll即可。

1.最主流的JDK是Sun公司发布的JDK,除了Sun以外,许多公司和组织也在开发自己的JDK,包括IBM公司开发的JDK、BEA公司的Jrocket和GNU组织开发的JDK。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。