java 不使用存档文件的动态类数据共享

qnakjoqk  于 2023-01-07  发布在  Java
关注(0)|答案(1)|浏览(106)

我们正在尝试使用动态类数据共享(动态CDS)与我们的Spring Boot 应用程序。
使用以下命令创建CDS存档

java -Xlog:cds -XX:DumpLoadedClassList=cds.jsa -jar app-0.0.1-SNAPSHOT.jar

并尝试使用以下命令使用归档文件

java -Xlog:cds -XX:SharedArchiveFile=cds.jsa -jar app-0.0.1-SNAPSHOT.jar

但在应用程序启动开始时出现以下错误

[0.009s][info][cds] trying to map cds.jsa
[0.009s][info][cds] Opened archive cds.jsa.
[0.009s][info][cds] _magic expected: 0xf00baba2
[0.009s][info][cds]          actual: 0x4f4e2023
[0.009s][info][cds] UseSharedSpaces: The shared archive file has a bad magic number.
[0.009s][info][cds] UseSharedSpaces: Unable to map shared spaces

openjdk版本“17”2021年9月14日(构建版本17+35-2724)Spring启动2.6.3

sdnqo3pr

sdnqo3pr1#

选项--XX:DumpLoadedClassList=cds.jsa创建CDS存档-它是创建静态CDS存档文件的一个步骤。
要创建动态CDS归档文件,必须使用

java -Xlog:cds -XX:ArchiveClassesAtExit=cds.jsa -jar app-0.0.1-SNAPSHOT.jar

图片来源:https://docs.oracle.com/en/java/javase/17/docs/specs/man/java.html#creating-cds-archives

相关问题