我有可运行的战争文件,我从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项目吗?
答案 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"
}