运行 gradle 生成的 jar 找不到 jar 条目

Posted

技术标签:

【中文标题】运行 gradle 生成的 jar 找不到 jar 条目【英文标题】:Jar entry not found by running gradle generated jar 【发布时间】:2014-08-16 00:45:36 【问题描述】:

我已经从 spring 入门指南下载了源代码(zip 文件):http://spring.io/guides/gs/rest-service/

在“完成”文件夹中构建整个项目是成功的。使用 Gradle (gradle run) 运行生成的 jar 文件也成功了。但是当我尝试在 Windows 命令行中使用“java -jar build\libs\gs-rest-service-0.1.0.jar”手动运行它时,启动过程失败并出现以下错误:

2014-06-25 14:17:22.414 ERROR 6864 --- [main] os.boot.SpringApplication : 应用程序启动失败

org.springframework.beans.factory.BeanDefinitionStoreException:类路径扫描期间 I/O 失败;嵌套异常是 java.io.FileNotFoundException: JAR 在 D:\gs-rest-service-master\complete\build\libs\gs-rest-service-0.1.0.jar 中找不到条目 /hello/

显然 spring 找不到文件夹“hello”,即使它位于 jar 中(我已经使用命令“jar -ft”检查了它)。

【问题讨论】:

也许可以试试gradle run --debug 看看gradle是如何运行jar的 调试输出很不清楚。在某些行中,会显示空指针异常,但在之前的行中还会显示消息“丢弃解析失败”。这意味着这些小解析错误将被忽略。 【参考方案1】:

您没有说您使用的是哪个版本的 Boot,但听起来您遇到了特定于 Windows 的recently reported problem in 1.1.2。您可以退回到 1.1.1 或等待 1.1.3,鉴于 Windows 上 1.1.2 的问题,应该在不久的将来可用。

【讨论】:

就像你说的,这个问题是由上面提到的引导版本 1.1.2 和 Windows 之间的不兼容引起的。我只是在 Gradel 构建文件中设置了 1.1.1 版本,它工作正常。谢谢你的回答。

以上是关于运行 gradle 生成的 jar 找不到 jar 条目的主要内容,如果未能解决你的问题,请参考以下文章

Gradle 找不到 Spring 核心 jar

Gradle 在执行自定义任务时找不到模块的输出 jar

Voldemort安装:找不到tools.jar

使用 Gradle (Kotlin) 应用程序部署 Spring Boot - 找不到 jar

android找不到jar包中远程依赖的类

thymeleaf-spring4:jar 找不到工件 - gradle intellij