首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Spring boot中添加超过65535个条目jar

在Spring boot中添加超过65535个条目jar
EN

Stack Overflow用户
提问于 2018-06-01 23:56:13
回答 4查看 2.5K关注 0票数 0

我创建了一个自定义的句子间语义相似度算法。项目创建了65535个条目jar,因为它包含100,000个单词。我使用"mvn install:install-file“将自定义jar添加到我的spring引导项目中,并创建了引导jar,但每当我运行项目时,我都会收到这个错误。

代码语言:javascript
复制
Exception in thread "main" java.lang.IllegalStateException: Failed to get nested archive for entry BOOT-INF/lib/semantics-1.0.jar
    at org.springframework.boot.loader.archive.JarFileArchive.getNestedArchive(JarFileArchive.java:109)
    at org.springframework.boot.loader.archive.JarFileArchive.getNestedArchives(JarFileArchive.java:87)
    at org.springframework.boot.loader.ExecutableArchiveLauncher.getClassPathArchives(ExecutableArchiveLauncher.java:72)
    at org.springframework.boot.loader.Launcher.launch(Launcher.java:49)
    at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:51)
Caused by: java.io.IOException: Unable to open nested jar file 'BOOT-INF/lib/semantics-1.0.jar'
    at org.springframework.boot.loader.jar.JarFile.getNestedJarFile(JarFile.java:252)
    at org.springframework.boot.loader.jar.JarFile.getNestedJarFile(JarFile.java:237)
    at org.springframework.boot.loader.archive.JarFileArchive.getNestedArchive(JarFileArchive.java:104)
    ... 4 more
Caused by: java.lang.IllegalStateException: Zip64 archives are not supported
    at org.springframework.boot.loader.jar.CentralDirectoryEndRecord.getNumberOfRecords(CentralDirectoryEndRecord.java:124)
    at org.springframework.boot.loader.jar.JarFileEntries.visitStart(JarFileEntries.java:91)
    at org.springframework.boot.loader.jar.CentralDirectoryParser.visitStart(CentralDirectoryParser.java:88)
    at org.springframework.boot.loader.jar.CentralDirectoryParser.parse(CentralDirectoryParser.java:56)
    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.createJarFileFromFileEntry(JarFile.java:290)

 at org.springframework.boot.loader.jar.JarFile.createJarFileFromEntry(JarFile.java:260)
    at org.springframework.boot.loader.jar.JarFile.getNestedJarFile(JarFile.java:248)
    ... 6 more 
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-06-02 00:12:02

请参阅https://github.com/spring-projects/spring-boot/issues/2895

关键错误是:

代码语言:javascript
复制
Caused by: java.lang.IllegalStateException: Zip64 archives are not supported

55mb不需要Zip64格式,您可能应该更改创建文件的方式。

票数 1
EN

Stack Overflow用户

发布于 2018-06-02 00:15:11

Spring boot不会在jar中支持超过65534个文件。这是他们的代码。

代码语言:javascript
复制
public int getNumberOfRecords() {
        long numberOfRecords = Bytes.littleEndianValue(this.block, this.offset + 10, 2);
        if (numberOfRecords == 0xFFFF) {
            throw new IllegalStateException("Zip64 archives are not supported");
        }
        return (int) numberOfRecords;
    }

因为它是数据文件,所以将它放在jar之外,这也会减少构建时间。

票数 2
EN

Stack Overflow用户

发布于 2019-09-23 22:31:07

Spring Boot2.2将支持zip64 jars Github issue

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50647193

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档