【问题标题】:Hibernate : classpath resource cannot be opened because it does not existHibernate:无法打开类路径资源,因为它不存在
【发布时间】:2015-03-05 04:50:47
【问题描述】:

我有一个使用 Spring 和 Hibernate 的 Maven 项目。当我使用 Debug As > Java Application 在 Eclipse 中启动它时,它运行良好。但是一旦我将它导出为一个可运行的 .jar 文件,它就会给我这个错误:

class path resource [com/xxx/file.hbm.xml] cannot be opened because it does not exist

但是当我打开 .jar 文件时,该文件位于 /resources/com/xxx.file.hbm.xml 下。我做错了什么?

谢谢。

【问题讨论】:

  • 可能是某种权限问题...
  • 不,我敢打赌,您的代码中缺少前导“resource/”,您从类路径中请求它。或者清单不包含它。
  • 如果你打开 jar 并且有一个资源文件夹有问题,那么不应该有一个资源文件夹。你不应该使用eclipse的导出功能来创建一个jar,那是你应该使用maven的。
  • @M. Deinum :我认为你是对的,我不应该使用导出功能来创建一个 jar。但我没有设法用 maven 生成 jar。也就是说,这是我老板在另一个项目中使用的程序。在另一个项目的 jar 中有完全相同的文件位于相同的位置,并且运行良好 =(
  • @duffymo :我在 applicationContext.xml 中请求这个文件,位于 resources/ 下,所以我猜它使用相对路径。

标签: java eclipse spring hibernate maven


【解决方案1】:

我终于找到了一种通过在 applicationcontext.xml 文件中指定绝对路径而不是相对路径来使其工作的方法。具体来说,我将“com/xxx/file.hbm.xml”更改为“/resources/com/xxx/file.hbm/xml”。感谢 duffymo 引导我走向正确的道路。

【讨论】:

    猜你喜欢
    • 2020-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-22
    • 2017-02-19
    • 2016-06-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多