[java详细总结] jdk各目录代表含义和作用

1. JDK安装目录

JDK的主安装目录通常位于:

C:\Program Files\Java\jdk-<version>

其中 <version> 是JDK的版本号,例如 jdk-11.0.12jdk-17.0.2

主目录用途:
  • 存储JDK的核心组件:包括JVM、Java工具(如javajavacjar等)、文档、头文件等。

  • 子目录:

    • 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文件)。
  • include目录
    • 存放Java头文件,供C/C++程序调用Java类库。
    • 常见文件:win32.javajvm.hjni.h
  • modules目录
    • 存放JDK模块,例如java.basejava.compiler等。
    • 模块文件名为.jmod,可以用jmod工具打包和解包。
  • src.zip目录
    • 包含Java源代码或模块文件,通常用于内部开发或定制JDK。
  • update目录
    • 存放JDK更新工具,例如update.exe,用于检查和安装JDK更新。

2. JVM安装目录

JVM是JDK的一部分,但有时也可以单独安装。JVM的安装目录通常位于:

C:\Program Files\Java\jvm-<version>

C:\Program Files\Java\jre-<version>

其中 jvmjre 分别代表Java Virtual Machine 和 Java Runtime Environment(JRE)。

主目录用途:
  • 存储JVM运行时环境:包括jvm.dlljre配置文件(如jvm.cfg)。

  • 子目录:

    • jre:包含JVM运行时环境,包括jrejiniidstore等。
    • lib:存放JVM类库文件(.dll)。
    • include:存放JVM头文件(.h文件)。
    • temp:存储临时文件。
    • logs:存储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子目录存放第三方类库。
  • source目录
    • 存放Java源代码或模块文件(.src.jar文件)。
    • 其他文件:sources.jar(源代码打包文件)。

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.cfgjava.confjavadoc.conf等。
    • 其他文件:jddir.java(JDK目录描述文件)。
  • jvm.cfg文件

    • JVM配置文件,包含JVM运行时参数(如-Xms-Xmx)。

    • 示例:

      ini复制代码# JVM配置示例
      JVM_OPTS="-Xms256m -Xmx1024m"
      
    • 其他文件:jre配置文件(如jrejini)。


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. 如何通过这些目录进行操作

  1. 设置PATH环境变量

    • 在用户目录下创建 .jdk 文件,配置JDK版本信息。
    • PATH环境变量中添加JDK的bin目录,方便通过命令行工具运行Java程序。
  2. 定制JVM参数

    • 修改JVM配置文件(如jvm.cfg),设置内存参数、垃圾回收器等。

    • 例如,在

      jvm.cfg
      

      中添加以下参数:

      JVM_OPTS="-Xms256m -Xmx1024m -XX:PermSize=512m -XX:MaxPermSize=1024m"
      
    • 保存并应用配置,重启JVM。

  3. 管理多个JDK版本

    • 在用户目录下创建多个JDK配置目录(如.jdk.jdk-11.jdk-17),分别配置不同的JDK版本。
    • 在每个JDK配置目录下设置环境变量,指定对应的JDK安装目录。
  4. 使用JDK模块和插件

    • 在“modules”目录下添加新的模块或插件,扩展JDK的功能。
    • 使用jmod工具打包和解包模块文件,管理模块化安装。
  5. 打包和运行Java程序

    • 使用jar工具打包Java程序为.jar文件。

    • 使用

      java
      

      命令运行打包好的

      .jar
      

      文件:

      java -jar myapp.jar
      
  6. 生成Java文档

    • 使用

      javadoc
      

      工具生成Java文档:

      javadoc -source . -classpath . -d ./javadoc
      
    • 生成的文档会出现在./javadoc目录下。

  7. 管理Java进程

    • 使用

      jps
      

      工具管理Java进程:

      jps [options] [mainclass]
      
    • 例如,启动一个Java程序:

      jps -cp . myapp.Main
      
  8. 查看Java线程堆栈

    • 使用

      jstack
      

      工具查看Java线程堆栈:

      jstack [options] <process>
      
    • 例如,查看某个进程的堆栈:

      jstack 1234
      
  9. 生成内存映射

    • 使用

      jmap
      

      工具生成Java内存映射:

      jmap [options] <process> <filename>
      
    • 例如,生成内存映射文件:

      jmap -heap 1234 memory.map
      
  10. 清理Java内存

    • 使用

      jmap
      

      工具清理Java内存:

      jmap -clearAll [options]
      

      例如,清理所有Java进程的内存:

      jmap -clearAll
      
  11. 安装JDK更新

    • 使用“update”工具检查和安装JDK更新:

      update.exe
      
    • 根据提示选择更新包,完成安装。

  12. 管理JDK模块

    • 使用

      jmod
      

      工具管理模块文件:

      jmod -list
      

      例如,列出所有模块:

      jmod -list
      

      或者解包模块文件:

      jmod -x jmod-file
      
  13. 使用Java工具包

    • 使用tools.jar中的工具包进行编码和调试。

    • 例如,使用

      javac
      

      编译Java源代码:

      javac -d ./classes MyJava.java
      
    • 使用

      jar
      

      打包:

      jar cvf myapp.jar -d ./classes
      
  14. 使用Java Web Start

    • 使用

      javaws
      

      运行Java Web Start应用程序:

      javaws myapp.jnlp
      
    • 例如,启动一个基于Java Web Start的应用程序。

  15. 管理JVM配置

    • 修改“jvm.cfg”文件,配置JVM参数,如内存大小、垃圾回收器设置等。
    • 保存配置后,重启JVM应用程序,应用新的配置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

samRsa

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值