在jlink:ed应用程序中使用记录(预览功能java-14),使用选项时出现以下错误:
options = ['--strip-debug', '--compress', '2', '--no-header-files', '--no-man-pages']
java.lang.ClassFormatError: Invalid constant pool index 11 for name in Record attribute in class file
myproj/MyClass$MyRecord
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(Unknown Source)
at java.base/java.lang.ClassLoader.defineClass(Unknown Source)
最佳答案
假设最终目标是减小自定义Java运行时镜像的大小,那么JDK14(仅Linux)上的一个选项是仅删除 native 调试符号(实际上是胖子!),并保留Java调试属性(以避免当前的ASM问题),方法是使用—-strip-native-debug-symbols
。
有关详细信息,请参见https://delabassee.com/StrippingDebug-Jlink/。
关于java - jlink :ed application throws exception中的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61504956/