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

标签 java spring spring-mvc spring-boot spring-data

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

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 

最佳答案

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

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 之外,这也会减少构建时间。

关于java - 在 Spring boot 中添加超过 65535 个条目 jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50647193/

相关文章:

java - spring data mongodb中的二维球体索引

java - 如何动态改变Spring JdbcTemplate数据源?

java - 如何通过提供 POST-only @Valid 来删除冗余的 Spring MVC 方法?

java - 缩进某个字符之后的所有行,直到另一个字符

java - 在输入速度非常慢时使用 64 位 Windows IE WebDriver

java - Android 未聚焦时隐藏 FAB 菜单

java - 构造函数中的依赖注入(inject)

Spring 安全注销处理程序不工作

java - 如何在 Java Spring 和 Hibernate 的单个事务中管理 2 个 DAO 方法?

java - 如何复制InsnList