1. JDK安装目录
JDK的主安装目录通常位于:
C:\Program Files\Java\jdk-<version>
其中 <version>
是JDK的版本号,例如 jdk-11.0.12
或 jdk-17.0.2
。
主目录用途:
-
存储JDK的核心组件:包括JVM、Java工具(如
java
、javac
、jar
等)、文档、头文件等。 -
子目录:
- bin:存放命令行工具。
- lib:存放Java类库文件(
.jar
或.dll
)。 - include:存放Java头文件(
.h
文件),用于C/C++编译调用Java库。 - src.zip:包含Java源代码或模块文件(压缩包形式)。
- update:存放JDK更新工具,用于检查和安装JDK更新。
- modules:存放JDK模块和插件,用于扩展JDK功能。
- jmods:存放JDK模块文件(
.jmod
),用于模块化安装。 - javadoc:存放Java文档(
.html
或.jar
)。 - templates:存放模板文件,用于生成代码或配置文件。
- conf:存放JDK配置文件(如
jvm.cfg
)。 - legal:存放许可证文件。
- src:存放JDK源代码(仅在JDK开发者环境中使用)。
- demo:存放JDK示例程序和工具。
常见文件和目录:
bin
目录:- 包含命令行工具:
java
:运行Java程序。javac
:编译Java源代码。jar
:打包Java程序为.jar
文件。javadoc
:生成Java文档。jps
:管理Java进程(如启动JVM)。jstack
:查看Java线程堆栈。jmap
:生成Java内存映射。
- 其他文件:
javaws
(启动Java Web Start应用)。
- 包含命令行工具:
lib
目录:- 存放Java类库文件,例如:
jvm.dll
:JVM本身。Java.Interop.dll
:用于调用Java代码的C/C++程序。ext
子目录:存放扩展类库(.jar
文件)。
- 其他文件:
verify.jar
(用于验证.jar
文件)。
- 存放Java类库文件,例如:
include
目录:- 存放Java头文件,供C/C++程序调用Java类库。
- 常见文件:
win32.java
、jvm.h
、jni.h
。
modules
目录:- 存放JDK模块,例如
java.base
、java.compiler
等。 - 模块文件名为
.jmod
,可以用jmod
工具打包和解包。
- 存放JDK模块,例如
src.zip
目录:- 包含Java源代码或模块文件,通常用于内部开发或定制JDK。
update
目录:- 存放JDK更新工具,例如
update.exe
,用于检查和安装JDK更新。
- 存放JDK更新工具,例如
2. JVM安装目录
JVM是JDK的一部分,但有时也可以单独安装。JVM的安装目录通常位于:
C:\Program Files\Java\jvm-<version>
或
C:\Program Files\Java\jre-<version>
其中 jvm
和 jre
分别代表Java Virtual Machine 和 Java Runtime Environment(JRE)。
主目录用途:
-
存储JVM运行时环境:包括
jvm.dll
、jre
配置文件(如jvm.cfg
)。 -
子目录:
- jre:包含JVM运行时环境,包括
jre
、jini
、idstore
等。 - lib:存放JVM类库文件(
.dll
)。 - include:存放JVM头文件(
.h
文件)。 - temp:存储临时文件。
- logs:存储JVM日志文件。
- jre:包含JVM运行时环境,包括
3. JDK配置目录
JDK配置目录通常位于用户目录下:
C:\Users\<用户名>\.jdk
或
C:\Users\<用户名>\jdk-<version>
用途:
- 存储JDK配置信息:包括环境变量、模块配置、版本号等。
- 管理多个JDK版本:可以在不同JDK版本之间切换。
4. JDK符号链接目录
在JDK安装目录下,通常会创建一个符号链接:
C:\Program Files\Java\jdk-<version>
- 用途:方便用户通过链接访问最新JDK版本,避免长路径问题。
5. 标准库和源码目录
lib
目录:- 存放Java标准库文件(
.jar
文件),例如rt.jar
(Java Runtime Library)、tools.jar
等。 - 其他文件:
ext
子目录存放第三方类库。
- 存放Java标准库文件(
source
目录:- 存放Java源代码或模块文件(
.src
或.jar
文件)。 - 其他文件:
sources.jar
(源代码打包文件)。
- 存放Java源代码或模块文件(
6. JDK更新目录
C:\Program Files\Java\update
- 用途:存放JDK更新工具,例如
update.exe
,用于检查和安装JDK更新。
7. JDK模块目录
C:\Program Files\Java\modules
- 用途:存放JDK模块和插件,用于扩展JDK功能。
- 模块文件:以
.jmod
格式存储。
8. JDK配置文件
-
conf
目录:- 存放JDK配置文件,例如
jvm.cfg
、java.conf
、javadoc.conf
等。 - 其他文件:
jddir.java
(JDK目录描述文件)。
- 存放JDK配置文件,例如
-
jvm.cfg
文件:-
JVM配置文件,包含JVM运行时参数(如
-Xms
、-Xmx
)。 -
示例:
ini复制代码# JVM配置示例 JVM_OPTS="-Xms256m -Xmx1024m"
-
其他文件:
jre
配置文件(如jre
、jini
)。
-
9. JDK示例目录结构
以下是一个典型的JDK安装目录结构示例:
C:\Program Files\Java\jdk-17.0.2\
├── bin\
│ ├── java.exe
│ ├── javac.exe
│ ├── jar.exe
│ └── jps.exe
├── lib\
│ ├── jvm.dll
│ ├── Java.Interop.dll
│ └── ext\
│ └── jfx.jar
├── include\
│ └── win32.java
├── jmods\
│ └── java.base.jmod
├── jre\
│ ├── bin\
│ │ └── server
│ └── lib\
│ └── jre\
├── src.zip
├── update.exe
├── modules\
│ └── java.base\
│ └── module-info.class
└── templates\
└── template.html
10. 常见文件和目录
-
jps
工具:-
位于
bin
目录下。 -
用途:管理Java进程,例如启动JVM。
-
命令行用法:
jps [options] [mainclass] [options]
-
-
jstack
工具:-
位于
bin
目录下。 -
用途:查看Java线程堆栈。
-
命令行用法:
jstack [options] <process>
-
-
jmap
工具:-
位于
bin
目录下。 -
用途:生成Java内存映射。
-
命令行用法:
jmap [options] <process> <filename>
-
-
javadoc
工具:-
位于
bin
目录下。 -
用途:生成Java文档。
-
命令行用法:
javadoc [options] <source>
-
11. 如何通过这些目录进行操作
-
设置PATH环境变量:
- 在用户目录下创建
.jdk
文件,配置JDK版本信息。 - 在
PATH
环境变量中添加JDK的bin
目录,方便通过命令行工具运行Java程序。
- 在用户目录下创建
-
定制JVM参数:
-
修改JVM配置文件(如
jvm.cfg
),设置内存参数、垃圾回收器等。 -
例如,在
jvm.cfg
中添加以下参数:
JVM_OPTS="-Xms256m -Xmx1024m -XX:PermSize=512m -XX:MaxPermSize=1024m"
-
保存并应用配置,重启JVM。
-
-
管理多个JDK版本:
- 在用户目录下创建多个JDK配置目录(如
.jdk
、.jdk-11
、.jdk-17
),分别配置不同的JDK版本。 - 在每个JDK配置目录下设置环境变量,指定对应的JDK安装目录。
- 在用户目录下创建多个JDK配置目录(如
-
使用JDK模块和插件:
- 在“modules”目录下添加新的模块或插件,扩展JDK的功能。
- 使用
jmod
工具打包和解包模块文件,管理模块化安装。
-
打包和运行Java程序:
-
使用
jar
工具打包Java程序为.jar
文件。 -
使用
java
命令运行打包好的
.jar
文件:
java -jar myapp.jar
-
-
生成Java文档:
-
使用
javadoc
工具生成Java文档:
javadoc -source . -classpath . -d ./javadoc
-
生成的文档会出现在
./javadoc
目录下。
-
-
管理Java进程:
-
使用
jps
工具管理Java进程:
jps [options] [mainclass]
-
例如,启动一个Java程序:
jps -cp . myapp.Main
-
-
查看Java线程堆栈:
-
使用
jstack
工具查看Java线程堆栈:
jstack [options] <process>
-
例如,查看某个进程的堆栈:
jstack 1234
-
-
生成内存映射:
-
使用
jmap
工具生成Java内存映射:
jmap [options] <process> <filename>
-
例如,生成内存映射文件:
jmap -heap 1234 memory.map
-
-
清理Java内存:
-
使用
jmap
工具清理Java内存:
jmap -clearAll [options]
例如,清理所有Java进程的内存:
jmap -clearAll
-
-
安装JDK更新:
-
使用“update”工具检查和安装JDK更新:
update.exe
-
根据提示选择更新包,完成安装。
-
-
管理JDK模块:
-
使用
jmod
工具管理模块文件:
jmod -list
例如,列出所有模块:
jmod -list
或者解包模块文件:
jmod -x jmod-file
-
-
使用Java工具包:
-
使用
tools.jar
中的工具包进行编码和调试。 -
例如,使用
javac
编译Java源代码:
javac -d ./classes MyJava.java
-
使用
jar
打包:
jar cvf myapp.jar -d ./classes
-
-
使用Java Web Start:
-
使用
javaws
运行Java Web Start应用程序:
javaws myapp.jnlp
-
例如,启动一个基于Java Web Start的应用程序。
-
-
管理JVM配置:
- 修改“jvm.cfg”文件,配置JVM参数,如内存大小、垃圾回收器设置等。
- 保存配置后,重启JVM应用程序,应用新的配置。