如何将 JLink 与 AppCDS 一起使用

How Can I Use JLink with AppCDS

我们正在使用 JLink 创建我们自己的 jre。在尝试移植到 java 13 时,我想利用新的 AppCDS 更改。我遇到的第一个错误是 jlink 没有复制 classes.jsa.

如果我手动复制 classes.jsa,我会得到一个不同的错误:构建共享存档文件时使用的不是 jar 文件。

我假设它们都源于我没有链接到 appCDS 的正确模块这一事实。但是我找不到关于该模块是什么的任何文档。有人有线索吗?

我不得不在 Java 13 上暂停一下,但今天又回来了。我能够通过我的 jlinked jre 运行 java -Xshare:dump 修复它。这创建了它期望的 classes.jsa 文件,从那里我能够使用 ArchiveClassesAtExit 和 SharedArchiveFile。