简体   繁体   中英

Unable to open nested entry inside .jar

I have .jar that runs with spring boot loader:

apply plugin: 'spring-boot'

jar {
    into('lib') {
        from configurations.runtime
    }
    manifest {
        attributes("Implementation-Vendor": "tttt",
            "Implementation-Title": project.name,
            "Implementation-Version": version,
            "Implementation-Vendor-Id": "tttt",
            "Built-By": "Administrator",
            "Build-Jdk": "1.7.0_101",
            "Start-Class": "org.cp.Application",
            "Spring-Boot-Version": "1.3.3.RELEASE",
            "Main-Class": "org.springframework.boot.loader.JarLauncher")
    }
}

I run my build:

:ttt:compileJava
:ttt:processResources
:ttt:classes
:ttt:findMainClass
:ttt:jar
:ttt:bootRepackage
:ttt:assemble
:ttt:check
:ttt:build

java -jar tttt.jar:

java.lang.IllegalStateException: Unable to open nested entry 'lib/spring-boot-starter-1.3.3.RELEASE.jar'. It has been compressed and nested jar files must be stored without compression. Please check the mechanism used to create your executable jar file
at org.springframework.boot.loader.jar.JarFile.createJarFileFromFileEntry(JarFile.java:382)
at org.springframework.boot.loader.jar.JarFile.createJarFileFromEntry(JarFile.java:357)
at org.springframework.boot.loader.jar.JarFile.getNestedJarFile(JarFile.java:343)
at org.springframework.boot.loader.archive.JarFileArchive.getNestedArchive(JarFileArchive.java:112)
at org.springframework.boot.loader.archive.JarFileArchive.getNestedArchives(JarFileArchive.java:96)
at org.springframework.boot.loader.ExecutableArchiveLauncher.getClassPathArchives(ExecutableArchiveLauncher.java:75)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:60)
at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:52)

I exploded spring.boot.loader manually into src/main/resources if that means something. What am I doing wrong here ?

You cannot execute Jar inside a JAR. if you need to do that, then you have to add the dependent JAR to environment variable & make use of it.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM