jdk中rt.jar的作用

最近看java.util.concurrent包的内容,发现java.time.、java.util.、java.nio.、java.lang.、java.text.、java.sql.、java.math.*等等都在rt.jar包下,才发现自己对平时经常用到的jdk的源码来源并不是很清晰。

我们在配置java环境变量时会配置JAVA_HOME、Path、Classpath,其中Classpath会配置.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar。当然,在jdk1.5之后可以不用再配置Classpath,笔者猜测应该是BootstrapClassloader已经默认了这个加载路径%JAVA_HOME%\lib的原因,有具体研究过的期待一起交流。

我们主要看下rt.jar、dt.jar、tools.jar的作用,rt.jar在%JAVA_HOME%\jre\lib,dt.jar和tools.jar在%JAVA_HOME%\lib下。

  • rt.jar:Java基础类库,也就是Java doc里面看到的所有的类的class文件。
  • tools.jar:是系统用来编译一个类的时候用到的,即执行javac的时候用到。
  • dt.jar:dt.jar是关于运行环境的类库,主要是swing包。

图片太占篇幅,最后我们再看下rt.jar包下的java包子目录。
jdk中rt.jar的作用_第1张图片

你可能感兴趣的:(java)