JDK版本

采用的JDK版本为:
查看命令:java -version

1
2
3
java version "1.8.0_112"
Java(TM) SE Runtime Environment (build 1.8.0_112-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.112-b15, mixed mode)

JDK文件基本组成

目录及文件 作用
bin/ Java 可执行文件,包括javac,javaw等
db/ Java DB(Apache Derby open source database),可做内嵌数据库
include/ .c,.h文件等Code 用于编译本地方法(native方法),支持JNI和JVMTI接口
jre/ Java Runtime Environment 根目录,用于和操作系统交换(包含很多dll文件)
lib/ Jar文件,为开发提供必要的开发包,如java.*都在rt.jar中
javafx-src.zip javafx源码包
src.zip java源码包
README.html README
COPYRIGHT 版权信息
LICENSE 许可证
release 发布信息
THIRDPARTYLICENSEREADME.txt 第三方代码许可证
JAVAFX.txt javaFx的第三方许可证信息

JDK目录

bin目录

  • windows环境下bin目录文件释义
名称 作用
appletviewer.exe 一种执行HTML文件上的Java小程序类的Java浏览器(已经很少使用)
extcheck.exe 检测目标 jar 文件与当前安装方式扩展 jar 文件间的版本冲突
idlj.exe IDL转Java编译器(IDL-to-Java Compiler),用于为指定的IDL文件生成Java绑定。IDL意即接口定义语言(Interface Definition Language)。
jabswitch.exe Java访问桥开关(Java Access Bridge switch),用于启用/禁用Java访问桥。Java访问桥内置于Java 7 Update 6及以上版本,主要为Windows系统平台提供一套访问Java应用的API。
jar.exe jar文件管理工具,主要用于打包压缩、解压jar文件。
jarsigner.exe jar密匙签名工具
java-rmi.exe Java远程方法调用(Java Remote Method Invocation)工具,主要用于在客户机上调用远程服务器上的对象。
java.exe Java运行工具,用于运行.class字节码文件或.jar文件。
javac.exe Java编译工具(Java Compiler),用于编译Java源代码文件。
javadoc.exe Java文档工具,主要用于根据Java源代码中的注释信息生成HTML格式的API帮助文档。
javafxpackager.exe JavaFX包装器,用于执行与封装或签名JavaFX应用有关的任务。(已经重命名javapackager.exe) 后续版本会删除
javapackager.exe 执行与封装或签名Java和JavaFx应用相关的任务
javah.exe Java头文件工具,用于根据Java类生成C/C++头文件和源文件(主要用于JNI开发领域)。
javap.exe Java反编译工具,主要用于根据Java字节码文件反汇编为Java源代码文件。
javaw.exe Java运行工具,用于运行.class字节码文件或.jar文件,但不会显示控制台输出信息,适用于运行图形化程序。
javaws.exe Java Web Start,使您可以从Web下载和运行Java应用程序,下载、安装、运行、更新Java应用程序都非常简单方便。
jcmd.exe Java 命令行(Java Command),用于向正在运行的JVM发送诊断命令请求。
jconsole.exe 图形化用户界面的监测工具,主要用于监测并显示运行于Java平台上的应用程序的性能和资源占用等信息。
jdb.exe Java调试工具(Java Debugger),主要用于对Java应用进行断点调试。
jdeps.exe 可以展示包层级和类层级的Java类依赖关系
jhat.exe 是一个Java堆复制浏览器。这个工具分析Java堆复制文件(例如,由上面的”jmap -dump”所产生的)。Jhat启动一个允许堆中的对象在web浏览器中进行分析的web服务器。这个工具并不是想用于应用系统中而是用于”离线”分 析。”jhat工具是平台独立的”,其意思是,它可以被用来观察在任何平台上所产生的堆复制。例如,我们有可能在Linux系统上使用jhat来观察一个 在Solaris OS上所产生的堆复制。
jinfo.exe 打印一个给定的Java进程或核心文件或一个远程调试服务器的Java配置信息。配置信息包括Java系统属性和JVM命令行标志
jjs.exe 调用Nashorn引擎(执行Java脚本代码)
jli.dll 未知
jmap.exe Java内存映射工具(Java Memory Map),主要用于打印指定Java进程、核心文件或远程调试服务器的共享对象内存映射或堆内存细节。
jmc.exe Java内存映射工具(Java Memory Map),主要用于打印指定Java进程、核心文件或远程调试服务器的共享对象内存映射或堆内存细节。
jmc.ini 配置文件
jps.exe JVM进程状态工具(JVM Process Status Tool),用于显示目标系统上的HotSpot JVM的Java进程信息。
jrunscript.exe 是一个命令行脚本外壳。jrunscript支持交互模式(read-eval-print)和批处理模式(-f选项)的脚本执行。这是一个脚本语言的独立外壳。默认情况下,使用JavaScript,但是我们可以使用-l选项来指定不同的语言。通过Java与脚本语言的通讯,jrunscript支持”探索性编程”风格,实验性质
jsadebugd.exe Java可用性代理调试守护进程(Java Serviceability Agent Debug Daemon),主要用于附加到指定的Java进程、核心文件,或充当一个调试服务器。
jstack.exe Java堆栈跟踪工具,主要用于打印指定Java进程、核心文件或远程调试服务器的Java线程的堆栈跟踪信息。
jstat.exe JVM统计监测工具(JVM Statistics Monitoring Tool),主要用于监测并显示JVM的性能统计信息。
jstatd.exe jstatd(VM jstatd Daemon)工具是一个RMI服务器应用,用于监测HotSpot JVM的创建和终止,并提供一个接口,允许远程监测工具附加到运行于本地主机的JVM上。
jvisualvm.exe JVM监测、故障排除、分析工具,主要以图形化界面的方式提供运行于指定虚拟机的Java应用程序的详细信息。
keytool.exe 密钥和证书管理工具,主要用于密钥和证书的创建、修改、删除等。
kinit.exe 主要用于获取或缓存Kerberos协议的票据授权票据。
klist.exe 允许用户查看本地凭据缓存和密钥表中的条目(用于Kerberos协议)。
ktab.exe Kerberos密钥表管理工具,允许用户管理存储于本地密钥表中的主要名称和服务密钥。
msvcr100.dll VS2010的一个动态链接库
native2ascii.exe 本地编码到ASCII编码的转换器(Native-to-ASCII Converter),用于”任意受支持的字符编码”和与之对应的”ASCII编码和(或)Unicode转义”之间的相互转换。
orbd.exe 对象请求代理守护进程(Object Request Broker Daemon),它使客户端能够透明地定位和调用位于CORBA环境的服务器上的持久对象。
pack200.exe JAR文件打包压缩工具,它可以利用Java类特有的结构,对普通JAR文件进行高效压缩,以便于能够更快地进行网络传输。
policytool.exe 策略工具,用于管理用户策略文件(.java.policy)。
rmic.exe Java RMI 编译器,为使用JRMP或IIOP协议的远程对象生成stub、skeleton、和tie类,也用于生成OMG IDL。
rmid.exe Java RMI 激活系统守护进程,rmid启动激活系统守护进程,允许在虚拟机中注册或激活对象。
rmiregistry.exe Java 远程对象注册表,用于在当前主机的指定端口上创建并启动一个远程对象注册表。
schemagen.exe XML schema生成器,用于生成XML schema文件
serialver.exe 序列版本命令,用于生成并返回serialVersionUID。
servertool.exe Java IDL 服务器工具,用于注册、取消注册、启动和终止持久化的服务器
tnameserv.exe Java IDL瞬时命名服务。
unpack200.exe JAR文件解压工具,将一个由pack200打包的文件解压提取为JAR文件。
wsgen.exe XML Web Service 2.0的Java API,生成用于JAX-WS Web Service的JAX-WS便携式产物。
wsimport.exe XML Web Service 2.0的Java API,主要用于根据服务端发布的wsdl文件生成客户端存根及框架
xjc.exe 主要用于根据XML schema文件生成对应的Java类。

db目录

  • 主要derby数据库的文件
  • db 目录的树形结构:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    │   3RDPARTY  第三方开源
    │ LICENSE 许可证
    │ NOTICE 声明事项
    │ README-JDK.html README
    │ RELEASE-NOTES.html 版本信息

    ├───bin
    │ dblook
    │ dblook.bat
    │ derby_common.bat
    │ ij
    │ ij.bat
    │ NetworkServerControl
    │ NetworkServerControl.bat
    │ setEmbeddedCP
    │ setEmbeddedCP.bat
    │ setNetworkClientCP
    │ setNetworkClientCP.bat
    │ setNetworkServerCP
    │ setNetworkServerCP.bat
    │ startNetworkServer
    │ startNetworkServer.bat
    │ stopNetworkServer
    │ stopNetworkServer.bat
    │ sysinfo
    │ sysinfo.bat

    └───lib
    derby.jar
    derby.war
    derbyclient.jar
    derbyLocale_cs.jar
    derbyLocale_de_DE.jar
    derbyLocale_es.jar
    derbyLocale_fr.jar
    derbyLocale_hu.jar
    derbyLocale_it.jar
    derbyLocale_ja_JP.jar
    derbyLocale_ko_KR.jar
    derbyLocale_pl.jar
    derbyLocale_pt_BR.jar
    derbyLocale_ru.jar
    derbyLocale_zh_CN.jar
    derbyLocale_zh_TW.jar
    derbynet.jar
    derbyoptionaltools.jar
    derbyrun.jar
    derbytools.jar

include目录

  • include 树形结构
    主要是一些头文件
    包含C语言头文件,支持Java本地接口与Java虚拟机调试程序接口的本地编程技术
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    │   classfile_constants.h
    │ jawt.h
    │ jdwpTransport.h
    │ jni.h jni头文件
    │ jvmti.h
    │ jvmticmlr.h

    └───win32
    │ jawt_md.h
    │ jni_md.h

    └───bridge
    AccessBridgeCallbacks.h
    AccessBridgeCalls.c
    AccessBridgeCalls.h
    AccessBridgePackages.h

lib目录

  • 基本含义:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
ant-javafx.jar :  Contains Ant tasks for packaging JavaFX applications
dt.jar : 关于运行环境的类库,主要是Swing包
tools.jar : 工具类库 Contains non-core classes for support of the tools and utilities in the JDK,工具类库,它跟我们程序中用到的基础类库没有关系。我们注意到在Path中变量值bin目录下的各个exe工具的大小都很小,一般都在27KB左右. 这是因为它们实际上仅仅相当于是一层代码的包装,这些工具的实现所要用到的类库都在tools.jar中, 用压缩软件打开tools.jar,你会发现有很多文件是和bin目录下的exe工具相对性的
ct.sym : 也是一个压缩包,里面包含rt.jar部分信息
ir.idl : 该文件是文本格式,CORBA为通用对象请求代理体系,其文件格式为idl(待详细了解)
javafx-mx.jar : javafx的mx扩展
jawt.lib : 猜测用于UI窗口,awt
jconsole.jar : JConsole 是一个内置 Java 性能分析器
jvm.lib : jvm相关
orb.idl : IDL not generated by rmic, do not edit These are all in IDL module CORBA The Java classes are in the package org.omg.CORBA See ValueType Semantics:Standard Value Box Definitions (5.3) in CORBA 2.3 spec
packager.jar : 打包用的
sa-jdi.jar : Java Debug Interface
visualvm/ : 为jvisualvm.exe 的需要调用的jar包
missioncontrol/ :为jmc.exe 提供需要调用的jar包

jre目录

基本结构

还得详细补充

1
2
3
4
5
6
7
8
COPYRIGHT 版权 
LICENSE 许可
README.txt
THIRDPARTYLICENSEREADME-JAVAFX.txt JAVAFX第三方开源代码许可
THIRDPARTYLICENSEREADME.txt 第三方开源框架代码许可
Welcome.html 欢迎页
bin/ Java 平台所使用工具和类库的可执行文件和 DLL 文件,和%JAVA_HOME%/bin目录下的基本是一样的,有部分是不一样的
lib/ Java 运行环境所使用的核心类库、属性设置和资源文件

jre中的bin目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
│   attach.dll  与动态加载有关,dynamic attach mechanism
│ awt.dll 与图形界面有关
│ bci.dll
│ dcpr.dll
│ decora_sse.dll
│ deploy.dll
│ dt_shmem.dll
│ dt_socket.dll
│ eula.dll
│ fontmanager.dll
│ fxplugins.dll
│ glass.dll
│ glib-lite.dll
│ gstreamer-lite.dll
│ hprof.dll
│ instrument.dll
│ j2pcsc.dll
│ j2pkcs11.dll
│ jaas_nt.dll
│ jabswitch.exe
│ java-rmi.exe
│ java.dll
│ java.exe
│ JavaAccessBridge-64.dll
│ javacpl.cpl
│ javacpl.exe
│ javafx_font.dll
│ javafx_font_t2k.dll
│ javafx_iio.dll
│ javaw.exe
│ javaws.exe
│ java_crw_demo.dll
│ jawt.dll
│ JAWTAccessBridge-64.dll
│ jdwp.dll
│ jfr.dll
│ jfxmedia.dll
│ jfxwebkit.dll
│ jjs.exe
│ jli.dll
│ jp2iexp.dll
│ jp2launcher.exe
│ jp2native.dll
│ jp2ssv.dll
│ jpeg.dll
│ jsdt.dll
│ jsound.dll
│ jsoundds.dll
│ kcms.dll
│ keytool.exe
│ kinit.exe
│ klist.exe
│ ktab.exe
│ lcms.dll
│ management.dll
│ mlib_image.dll
│ msvcp120.dll
│ msvcr100.dll
│ msvcr120.dll
│ net.dll
│ nio.dll
│ npt.dll
│ orbd.exe
│ pack200.exe
│ policytool.exe
│ prism_common.dll
│ prism_d3d.dll
│ prism_sw.dll
│ resource.dll
│ rmid.exe
│ rmiregistry.exe
│ sawindbg.dll
│ servertool.exe
│ splashscreen.dll
│ ssv.dll
│ ssvagent.exe
│ sunec.dll
│ sunmscapi.dll
│ t2k.dll
│ tnameserv.exe
│ unpack.dll
│ unpack200.exe
│ verify.dll
│ w2k_lsa_auth.dll
│ WindowsAccessBridge-64.dll
│ wsdetect.dll
│ zip.dll

├───dtplugin
│ deployJava1.dll
│ npdeployJava1.dll

├───plugin2
│ msvcr100.dll
│ npjp2.dll

└───server
classes.jsa
jvm.dll
Xusage.txt

jre中的lib目录文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
│   accessibility.properties
│ calendars.properties
│ charsets.jar
│ classlist
│ content-types.properties
│ currency.data
│ deploy.jar
│ flavormap.properties
│ fontconfig.bfc
│ fontconfig.properties.src
│ hijrah-config-umalqura.properties
│ javafx.properties
│ javaws.jar
│ jce.jar
│ jfr.jar
│ jfxswt.jar
│ jsse.jar
│ jvm.hprof.txt
│ logging.properties
│ management-agent.jar
│ meta-index
│ net.properties
│ plugin.jar
│ psfont.properties.ja
│ psfontj2d.properties
│ resources.jar
│ rt.jar
│ sound.properties
│ tzdb.dat
│ tzmappings

├───amd64
│ jvm.cfg

├───applet
├───cmm
│ CIEXYZ.pf
│ GRAY.pf
│ LINEAR_RGB.pf
│ PYCC.pf
│ sRGB.pf

├───deploy
│ ffjcext.zip
│ messages.properties
│ messages_de.properties
│ messages_es.properties
│ messages_fr.properties
│ messages_it.properties
│ messages_ja.properties
│ messages_ko.properties
│ messages_pt_BR.properties
│ messages_sv.properties
│ messages_zh_CN.properties
│ messages_zh_HK.properties
│ messages_zh_TW.properties
│ splash.gif
│ splash@2x.gif
│ splash_11-lic.gif
│ splash_11@2x-lic.gif

├───ext
│ access-bridge-64.jar
│ cldrdata.jar
│ dnsns.jar
│ jaccess.jar
│ jfxrt.jar
│ localedata.jar
│ meta-index
│ nashorn.jar
│ sunec.jar
│ sunjce_provider.jar
│ sunmscapi.jar
│ sunpkcs11.jar
│ zipfs.jar

├───fonts
│ LucidaBrightDemiBold.ttf
│ LucidaBrightDemiItalic.ttf
│ LucidaBrightItalic.ttf
│ LucidaBrightRegular.ttf
│ LucidaSansDemiBold.ttf
│ LucidaSansRegular.ttf
│ LucidaTypewriterBold.ttf
│ LucidaTypewriterRegular.ttf

├───images
│ └───cursors
│ cursors.properties
│ invalid32x32.gif
│ win32_CopyDrop32x32.gif
│ win32_CopyNoDrop32x32.gif
│ win32_LinkDrop32x32.gif
│ win32_LinkNoDrop32x32.gif
│ win32_MoveDrop32x32.gif
│ win32_MoveNoDrop32x32.gif

├───jfr
│ default.jfc
│ profile.jfc

├───management
│ jmxremote.access
│ jmxremote.password.template
│ management.properties
│ snmp.acl.template

└───security
blacklist
blacklisted.certs
cacerts
java.policy
java.security
javaws.policy
local_policy.jar
trusted.libraries
US_export_policy.jar