You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过命令行查看本地JVM模块内的资源文件内容

命令行查看JVM内置模块资源文件的方法

JDK 9及以上版本采用自定义JImage格式存储所有Java模块内容,你看到的lib/modules就是JImage格式的模块化镜像,不属于zip/7z等通用归档格式,普通压缩工具无法打开,直接用JDK自带的工具即可查看目标文件:

方法1:一行命令直接打印文件内容(无需落盘提取)

直接调用JDK内置的jshell工具,通过JDK内置的JRT虚拟文件系统读取目标文件,执行完直接在终端输出内容:

# Linux/macOS/Windows 通用命令,直接在终端执行即可
jshell -e "Files.newInputStream(Path.of(\"/modules/java.base/sun/net/www/content-types.properties\")).transferTo(System.out);System.exit(0);"

执行后终端会直接打印content-types.properties的全部内容,不会在本地生成多余文件。

方法2:提取文件到本地后查看

如果需要把文件保存到本地再查看,可以用JDK自带的jimage工具操作:

  • 第一步:先验证目标文件路径是否存在
    • Linux/macOS执行:jimage list $JAVA_HOME/lib/modules | grep content-types.properties
    • Windows cmd执行:jimage list %JAVA_HOME%\lib\modules | findstr content-types.properties
      正常输出会确认该文件位于java.base模块下,路径与你要查找的/sun/net/www/content-types.properties一致。
  • 第二步:提取目标文件到指定目录
    • Linux/macOS执行:jimage extract --dir /tmp/jdk_res $JAVA_HOME/lib/modules --include ".*/sun/net/www/content-types.properties"
    • Windows cmd执行:jimage extract --dir C:\temp\jdk_res %JAVA_HOME%\lib\modules --include ".*/sun/net/www/content-types.properties"
      执行完成后,进入你指定的提取目录,顺着java.base/sun/net/www/路径就能找到content-types.properties文件,直接用任意文本编辑器打开即可。

注意事项

  • 上述用到的jshell、jimage均为JDK自带工具,存放在JDK安装目录的bin文件夹下,执行前请确保已将JDK的bin目录加入系统PATH环境变量,否则需要写全工具的绝对路径调用。
  • 不要尝试用通用压缩软件解析lib/modules文件,该格式为JDK专属,做了类字节码共享、存储压缩优化,没有第三方工具的适配支持无法正常读取。

内容的提问来源于stack exchange,提问作者SpaceTrucker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 15:27:17