使用相同的JDK版本在不同的虚拟机上收集Java AppCDS文件,并在需要加载这些类的虚拟机上使用这些文件。
具体步骤如下:
假设我们有一台虚拟机A,它已经安装了Java 8,并且有一个需要收集的应用程序myapp.jar。我们可以使用以下命令来创建Java AppCDS文件:
java -XX:+UseAppCDS -XX:DumpLoadedClassList=classes.lst -XX:SharedClassListFile=classes.lst -XX:SharedArchiveFile=myapp.jsa -jar myapp.jar
该命令将加载myapp.jar的所有类,并将其写入classes.lst文件中。然后,它会将共享的类列表文件设置为classes.lst,并将生成的共享归档文件设置为myapp.jsa。
将myapp.jsa文件从虚拟机A复制到虚拟机B。可以使用scp命令或其他文件传输工具。
在需要加载myapp.jar中的类的虚拟机B上,使用以下命令来启用Java AppCDS:
java -XX:+UseAppCDS -XX:SharedArchiveFile=myapp.jsa -jar myapp.jar
该命令使用myapp.jsa文件中的共享归档文件来加载类,从而提高应用程序的启动性能。
需要注意的是,要使Java AppCDS的收集和使用生效,必须使用相同版本的JDK在虚拟机上运行应用程序。