jdk下的lib和jdk/jre下的lib文件是一样的,这只是为了不同场景下的使用,解释如下:
1.普通用户装jre即可。开发人员需要安装jdk,其中包括jre。所以jdk目录下包括jre目录。两个jre大体相同,有细微的差别。两套 jre ,是针对不同的工作职责!不同的 jre 负责各自范围的内容。当用户只需要执行 java 的程序时,那么C:\Program Files\Java\jre1.5.0_08的 jre 就 ok !
2.当用户是 java 程序员,则需要 java 开发环境。编译时,系统就会优先去找C:\Program Files\Java\jdk1.5.0_08\bin下的“ java 、 javac ”这些命令所在目录或者他们的父目录的 jre 。即开发环境下运行的是 jdk 下的 jre 。
问题的实质是,jdk的运行本身就需要jre的支持,所以在jdk目录下会有个jre(专门用来支持jdk的)。另外个jre是针对一般java程序的,比如Eclipse,tomcat。
回到你的问题,
jdk下的bin包含了javac.exe,java.exe,jar.exe等诸多开发java程序的小程序。
jre下的bin包含了javaw.exe,java-rmi.exe等程序,很多java程序的运行都是基于该文件的,如Eclipse,tomcat。比如运行了tomcat,你在任务管理器中将看到一个javaw进程。
jre的lib中有rt.jar,含java运行的最核心的类库。
jdk的lib不是很清楚。
JDK下的jre 是你工作的时候 编译 执行 需要的运行环境
而单独的JRE是 你外部直接拿一个java程序(*.jar) 运行用到的运行环境
jdk里的lib是你编程是所需要的类库。
jre里的是运行程序环境所需要的类库。
en