当前位置: 代码网 > it编程>编程语言>Java > JDK JRE JVM JAR IDE 区别和联系

JDK JRE JVM JAR IDE 区别和联系

2024年08月03日 Java 我要评论
学习笔记

jvm jre jdk关系图

jvm = java virtual machine

java虚拟机,用来实现java跨平台(linux win unix mac等)运行。jvm在内存里具有一套虚拟的计算指令和环境,不跨平台,实现了java程序的跨平台。
使用java编译器编译java程序时,生成的是字节码(test.class 类文件,或字节码文件,包含jvm指令集、符号表及补充信息),可以在虚拟机上执行。
class文件不会与机器的操作系统相对应,而是与虚拟机jvm对应,虚拟机解释给本地的操作系统执行。

jre = java runtime environment

java运行环境 = jvm + 核心类库(lib中)
没有编译器和调试器,不能算是开发环境。包含运行 .class 文件的 java.exe,因此只能执行class文件。
包含rt.jar (可以理解为java源码编译成的jar包)
管理java运行环境的类库和工具,比如密钥、安全策略管理工具、jar文件解压缩工具等。

jdk = java development kit

java开发工具包
面向java的sdk(软件开发工具包),包含java的开发和运行环境。
jre + 基础类库(java api,比如io 线程等)+java编译器(javac)以及其他工具(jar javah jdb jps等)
在这里插入图片描述
例如,java.lang 存储最基础的类,使用最频繁,不用手工导入
object(对象)是根类,java中所有的类都是从此类派生的。
java.util 辅助类,尤其是集合类collection,list,map等。
java.sql: 这个是数据库操作的类,connection, statement,resultset等。
javax.servlet:这个是jsp,servlet等使用到的类。

jdk的主要部分:

java ide = java integrated development environment

java集成开发环境,包含其他开发需要的语言编辑器、debug工具、打包工具等。

jar = java archive

java归档,表示把多个java相关文件(.class 图像 声音等等)打包合成一个文件。内部会自动生成一个manifest文件存储详情单信息。可以需要的库和和部署资源打包,直接在编译器和jvm上使用。

区别和联系

jvm(放在bin里) + 核心类库(lib里) = 可以运行class文件的 jre
我们:
通过jdk(调用java api)开发java程序,javac进行编译成class文件。
通过jre运行java的class文件,由jvm解析字节码,映射到其操作系统中的cpu指令集或者os。

java程序运行过程 v.s. c程序运行过程

java
在这里插入图片描述

jar v.s. war 包

war包:web archive,需要包含web-inf,属于可以直接运行的web模块,一般是做好一个web的应用以后,直接打包部署到容器里。(tomcat等,后续补充)
jar包:声明main方法后,可以直接用java命令运行。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com