1.Java特性之一
一次编译,到处运行 -----是因为有jvm(Java虚拟机)—java运行的软件环境
Java字节码只能运行在jvm中
.java–编译–.class----在特定系统的jvm中执行(解释,执行)
2.JDK,JRE,JVM
JDK包含JRE,而JRE包 含JVM。
(1)JDK是sun公司开发的Java开发工具,包括了Java类,编译器,解释器,运行环境和命令行工具。
安装jdk后需要配置环境变量----这样子Eclipse和Tomcat就可以找到JDK了
jdk中的核心成分:
bin:最主要的是编译器(javac.exe)
lib:类库
jre:java运行环境
(2)JRE(Java Runtime Environment,Java运行环境),包含JVM标准实现及Java核心类库。JRE是Java运行环境,并不是一个开发环境,所以没有包含任何开发工具(如编译器和调试器)
(jre里有运行.class的java.exe
a.JDK和JRE区别:JDK还有jar.exe, javadoc.exe等等用于开发的可执行指令文件。这也证实了一个是开发环境,一个是运行环境
b.JRE和JVM区别:JVM并不代表就可以执行class了,JVM执行.class还需要JRE下的lib类库的支持。
总结:JDK(开发环境)-----能够编译+运行(JRE 运行环境)
JRE-----能够解释+执行(JVM+一些需要交互的类)
开发安装jdk,只是运行安装jre
3.jar包
通常JAR文件是一种压缩文件
当开发了一个应用程序后,这个应用程序包含了很多类,如果需要把这个应用程序提供给别人使用,通常会将这些类文件打包成一个JAR文件,把这个JAR文件提供给别人使用
对比:
与传统的 ZIP 文件不同的是 Jar 包不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可被编译器和 JVM 等工具直接使用。
譬如 Jar 包可以保证安全性(对 Jar 文件内容加上数字化签名)、增加传输平台扩展性(作为 Java 扩展框架)
很多 Jar 包包含一个 -INF 目录,它用来存储包和扩展的配置数据(如安全性和版本信息),Java 平台会识别并解释 -INF 目录下的文件来配置应用程序、扩展和类装载器。 -INF 目录包含的常见文件如下: MANIFEST.MF:这个 manifest 文件定义了与扩展和包相关的数据(譬如 java -jar 命令执行的 MainClass 就在这里面指定)。 XXX.SF:这是 Jar 包的签名文件,其中 XXX 表示签名者。 XXX.DSA:这是与签名文件相关联的签名程序块文件,它存储了用于签名 Jar 文件的公共签名。

收藏 打印