JDK和JRE
1、JDK和JRE的使用优先权
安装JDK时一定会在其子目录下面安装一个JRE,同时在安装的过程也会询问你是否要安装一个外部的JRE。
如果我们选择安装则就同时拥有了两个jre。这两个JRE其实本质上是没有任何分别的。
最主要的区别在于:
JDK目录里面的JRE主要是设计用来运行JDK自带的那些工具的(Bin目录下)。而外部的JRE在安装的时候会自动注册到操作系统的path里面。因此我们只要安装了外部的JRE(即使JDK没有安装,环境变量没有配置)则运行Java程序时都是用的外部JRE的java.exe程序来运行的(即使安装了JDK且配置了环境变量,因为系统的默认path具有优先)。
简单的说JDK是面向开发人员使用的SDK 。SDK是Software Development Kit 一般指软件开发包,可以包括函数库、编译程序等。
JDK(JAVA Develop Kit,JAVA开发工具包)提供了Java的开发环境和运行环境,主要用于开发JAVA程序,面向Java程序的开发者;
JRE(JAVA Runtime Environment,JAVA运行环境)提供了Java的运行环境,主要用于执行JAVA程序,面向Java程序的使用者。
JVM(JAVA Virtual Machine,JAVA虚拟机)是JRE的一部分,JRE是JVM的补充。那么JVM到底在哪里呢?我们打开C:\Program Files\Java\jdk1.5.x\jre\bin,会看到client和server两个目录,在这两个目录中分别可以看到jvm.dll,这就 是我们所说的JVM之所在。
2、dt.jar rt.lar和tool.jar的作用
dt.jar和tools.jar位于:{Java_Home}/lib/下,而rt.jar位于:{Java_Home}/jre/lib/下,其中:
rt.jar是JAVA基础类库,也就是你在java doc里面看到的所有的类的class文件 dt.jar是关于运行环境的类库
tools.jar是工具类库,编译和运行需要的都是toos.jar里面的类分别是sun.tools.java.*; sun.tols.javac.*;
在Classpath设置这几个变量,是为了方便在程序中 import;Web系统都用到tool.jar。
(1)rt.jar
rt.jar 默认就在Root Classloader的加载路径里面的,而在Claspath配置该变量是不需要的;同时jre/lib目录下的
其他jar:jce.jar、jsse.jar、charsets.jar、resources.jar都在Root Classloader中
(2)tools.jar
tools.jar 是系统用来编译一个类的时候用到的,即执行javac的时候用到
javac XXX.java
实际上就是运行
java -Calsspath=%JAVA_HOME%\lib\tools.jar xx.xxx.Main XXX.java
javac就是对上面命令的封装 所以tools.jar 也不用加到classpath里面
(3)dt.jar
dt.jar是关于运行环境的类库,主要是swing的包 在用到swing时最好加上。
3、import的使用
必须明确不同source folder中的不同package下的 .java 文件经过编译后的 .class,都以包的结构存放在该项目目录下一个叫bin目录的文件夹中,所以不同source folder下的相同package下的java文件不能取相同的名字(编译后会在同一个文件夹中,同一个文件夹中不能有名字相同的文件否则报错!)
java中import导入的既可以是.jar又可以是java源文件,实际上它们都会转换为.class,因为.jar是.class文件的打包文件,Java会自动解包取出 需要的.class文件使用,而对于.java文件,你必须编译,否则导入时不成功的。
当我们导入不同source folder中的相同package的不同java文件时,只需在要导入的java文件中添加:import 包名.***.java
即这里无需加入source folder的文件夹名称, 从这里我们也可以看出导入的是 .class文件
浙公网安备 33010602011771号