关于编译jdk.jdeps及引入外部JAR的技术问题咨询
jdeps补丁开发相关问题解答
1. 外部JAR包的添加位置与生效方式
- 你提到的
Gensrc.gmk第37行是可行的配置点之一,但需结合jdeps模块的编译配置确保依赖生效:- 优先在jdeps专属的编译脚本(如
jdeps.gmk)中,将外部JAR路径添加到编译类路径(CLASSPATH)或模块路径(MODULEPATH)参数中。 - 若通过
SetupCompileProperties代码管理编译属性,可在该类中找到jdeps模块的属性配置段,把外部JAR的路径追加到对应的依赖路径参数里。 - 配置路径时建议使用相对JDK源码根目录的路径或绝对路径,确保编译后
libjli.so启动JVM时能正确加载该JAR。 - 仅修改
Gensrc.gmk第37行可能无法覆盖编译和运行时的依赖需求,需同步确认jdeps模块的编译脚本已纳入该JAR。
- 优先在jdeps专属的编译脚本(如
2. 仅编译jdeps模块的方法
- 借助JDK根目录的Makefile支持模块单独编译:
- 在JDK源码根目录执行
make jdeps,该命令会触发jdeps模块的专属编译流程,无需全量编译整个JDK。 - 也可进入jdeps的编译文件夹(对应
src/jdk.jdeps相关目录),执行该目录下的make all命令,前提是该目录的子Makefile已配置好模块编译规则。 - 编译完成后,生成的jdeps二进制文件仍通过
libjli.so启动,无需重新编译整个JVM环境。
- 在JDK源码根目录执行
内容的提问来源于stack exchange,提问作者James W.
相关产品推荐
相关产品推荐

