运行 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 条目的主要内容,如果未能解决你的问题,请参考以下文章