我正在尝试构建一个6GB大小的.JAR存档,但它不会起作用。似乎文件的限制为4GB,因为如果我将文件减少到4GB(4096MB)限制,那么构建成功。但我需要它是> = 6GB并且它必须包含25000个文件。求你帮帮我。
尝试启动时遇到错误.jar:
Exception in thread "main" java.lang.IllegalStateException: java.lang.IndexOutOfBoundsException
at org.springframework.boot.loader.ExecutableArchiveLauncher.<init>(ExecutableArchiveLauncher.java:43)
at org.springframework.boot.loader.JarLauncher.<init>(JarLauncher.java:35)
at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:51)
Caused by: java.lang.IndexOutOfBoundsException
at org.springframework.boot.loader.jar.AsciiBytes.<init>(AsciiBytes.java:69)
at org.springframework.boot.loader.jar.CentralDirectoryFileHeader.load(CentralDirectoryFileHeader.java:83)
at org.springframework.boot.loader.jar.CentralDirectoryParser.parseEntries(CentralDirectoryParser.java:68)
at org.springframework.boot.loader.jar.CentralDirectoryParser.parse(CentralDirectoryParser.java:57)
at org.springframework.boot.loader.jar.JarFile.<init>(JarFile.java:118)
at org.springframework.boot.loader.jar.JarFile.<init>(JarFile.java:106)
at org.springframework.boot.loader.jar.JarFile.<init>(JarFile.java:92)
at org.springframework.boot.loader.jar.JarFile.<init>(JarFile.java:83)
at org.springframework.boot.loader.archive.JarFileArchive.<init>(JarFileArchive.java:61)
at org.springframework.boot.loader.archive.JarFileArchive.<init>(JarFileArchive.java:57)
at org.springframework.boot.loader.Launcher.createArchive(Launcher.java:129)
at org.springframework.boot.loader.ExecutableArchiveLauncher.<init>(ExecutableArchiveLauncher.java:40)
... 2 more
答案 0 :(得分:0)
即使我真的不支持这种方法的粉丝,如果您使用Java 7以及同样支持它的文件系统/操作系统,这应该原则上有效。使用Java 6你没有机会,但无论如何都是EOL。另请参阅What is the maximum number of files per jar?
答案 1 :(得分:0)
Spring引导加载程序不支持zip64格式:https://github.com/spring-projects/spring-boot/issues/2895
重组项目以将一些类打包成嵌套的jar。如果您使用gradle,这应该可以通过多模块项目轻松实现。
答案 2 :(得分:0)
我只是使用SpringBoot的addResourceLocations()和该.JAR的类路径。就这么简单,我以前做过这个,我只是忘记了。傻我。