我们正在尝试在spring启动应用程序中使用动态类数据共享(Dynamic CDS)。
使用以下命令
创建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 version "2017-09-14 (build 17+35-2724)Springboot 2.6.3
选项--XX:DumpLoadedClassList=cds.jsa
doesnot创建一个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