无法打开嵌套条目'WEB-INF / lib / example.jar

时间:2019-06-11 07:39:00

标签: java spring spring-boot

我有可运行的战争文件,我从WEB-INF / lib文件夹中删除了一个.jar文件。再次将相同的jar文件添加到相同的路径中,但是它无法运行war文件,并且出现错误

  

线程“主”中的异常java.lang.IllegalStateException:无法执行   获取嵌套的存档以供输入   WEB-INF / lib / test-cts-chk-query-rest-app-1.0.5 / com / testcorp / cts / chk / query / rest / app / ClearinghouseQueryRESTController.class     在   org.springframework.boot.loader.archive.JarFileArchive.getNestedArchive(JarFileArchive.java:108)     在   org.springframework.boot.loader.archive.JarFileArchive.getNestedArchives(JarFileArchive.java:86)     在   org.springframework.boot.loader.ExecutableArchiveLauncher.getClassPathArchives(ExecutableArchiveLauncher.java:70)     在org.springframework.boot.loader.Launcher.launch(Launcher.java:49)     在   org.springframework.boot.loader.WarLauncher.main(WarLauncher.java:58)   原因:java.io.IOException:无法打开嵌套的jar文件   'WEB-INF / lib / test-cts-chk-query-rest-app-1.0.5 / com / testcorp / cts / chk / query / rest / app / ClearinghouseQueryRESTController.class'     在   org.springframework.boot.loader.jar.JarFile.getNestedJarFile(JarFile.java:254)     在   org.springframework.boot.loader.jar.JarFile.getNestedJarFile(JarFile.java:239)     在   org.springframework.boot.loader.archive.JarFileArchive.getNestedArchive(JarFileArchive.java:103)     ... 4更多原因:java.lang.IllegalStateException:无法打开   嵌套条目   'WEB-INF / lib / test-cts-chk-query-rest-app-1.0.5 / com / testcorp / cts / chk / query / rest / app / ClearinghouseQueryRESTController.class'。   它已被压缩,嵌套的jar文件必须存储在没有   压缩。请检查用于创建可执行文件的机制   jar文件位于   org.springframework.boot.loader.jar.JarFile.createJarFileFromFileEntry(JarFile.java:282)     在   org.springframework.boot.loader.jar.JarFile.createJarFileFromEntry(JarFile.java:262)     在   org.springframework.boot.loader.jar.JarFile.getNestedJarFile(JarFile.java:250)     ...还有6个

有什么办法可以解决gradle项目吗?

2 个答案:

答案 0 :(得分:0)

首先,如果您有gradle项目,则无需添加外部Jar,则可以编写gradle脚本以在程序中使用该jar / class文件。

第二件事,如果您刚刚在Lib目录中删除并添加了jar,则需要清理并构建项目一次。

答案 1 :(得分:0)

  

线程“ main”中的异常java.lang.IllegalStateException:无法获取条目的嵌套存档

jar文件不可执行。


您可以使用以下内容。

使用spring bootJar任务构建一个jar。默认情况下,它是启用的,尽管只是为了确保Gradle使用spring bootJar任务来构建jar。

bootJar { enabled true }

禁用jfxJar任务。

jfxJar { enabled false }

提供bootJar的输出路径到jfxAppOutputDir,并提供Spring boot JarLauncher作为mainClass。

jfx {
    mainClass = 'org.springframework.boot.loader.JarLauncher'

    jfxAppOutputDir = "${buildDir.path}/libs"
}

enter link description here