java - 作为可执行 jar 运行时未找到 hibernate.cfg.xml

标签 java eclipse hibernate jar executable-jar

我是 Hibernate 新手。 当我使用 Eclipse 运行 Hibernate 程序时,它能够找到 hibernate.cfg.xml 文件。 我将该文件放入 src/main/resources 文件夹中。 但是当我创建 可执行 jar 并使用运行我的程序时 java -jar SQ.jar 它给了我以下错误

Exception in thread "main" java.lang.ExceptionInInitializerError
    at com.moodys.sonarqube.ExtractSQData.HibernateUtil.buildSessionFactory(HibernateUtil.java:20)
    at com.moodys.sonarqube.ExtractSQData.HibernateUtil.<clinit>(HibernateUtil.java:9)
    at com.moodys.sonarqube.ExtractSQData.SQ.getProjectDB(SQ.java:266)
    at com.moodys.sonarqube.ExtractSQData.SQ.extractSQDataToDB(SQ.java:76)
    at com.moodys.sonarqube.ExtractSQData.SQ.main(SQ.java:59)
Caused by: org.hibernate.HibernateException: /hibernate.cfg.xml not found
    at org.hibernate.util.ConfigHelper.getResourceAsStream(ConfigHelper.java:147)
    at org.hibernate.cfg.Configuration.getConfigurationInputStream(Configuration.java:1405)
    at org.hibernate.cfg.Configuration.configure(Configuration.java:1427)
    at org.hibernate.cfg.Configuration.configure(Configuration.java:1414)
    at com.moodys.sonarqube.ExtractSQData.HibernateUtil.buildSessionFactory(HibernateUtil.java:14)
    ... 4 more

以下是我加载 hibernate.cfg.xml 文件的代码

private static SessionFactory buildSessionFactory() {
        try {
            // Create the SessionFactory from hibernate.cfg.xml
            return new AnnotationConfiguration().configure().buildSessionFactory();

        }
        catch (Throwable ex) {
            // Make sure you log the exception, as it might be swallowed
            System.err.println("Initial SessionFactory creation failed." + ex);
            throw new ExceptionInInitializerError(ex);
        }
    }

请告诉我我做错了什么。

最佳答案

您可以在配置时给出完整路径。 你可以试试这个。

return new AnnotationConfiguration().configure("/resources/hibernate.cfg.xml").buildSessionFactory();

or

return new AnnotationConfiguration().configure("hibernate.cfg.xml").buildSessionFactory();

关于java - 作为可执行 jar 运行时未找到 hibernate.cfg.xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40802214/

相关文章:

java - 如何将列表(java.util.list)中的值传递给paint方法?

java - 如何使用 Eclipse、Maven、Grails 和 git 建立新的 Java 项目?

java - Play 2.5 - @Transactional readOnly 被忽略?

java - 在哪里可以找到 Hibernate 的 DTD?

java - 提交表单时,带有日期时间的 Spring 字段为空

java - 获取Java进程加载的dll列表

java - 如何访问匿名对象内声明的字段?

java - 如何让android直接连接mysql

java - tomcat和project有不同的jdk会出现什么问题

c++ - 图书馆之间的冲突