繁体   English   中英

运行为可执行jar时找不到hibernate.cfg.xml

[英]hibernate.cfg.xml not found when run as 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();

如果你使用的是hibernate 4.3+,你也可以尝试这个

configuration = new Configuration();
configuration.configure("hibernate.cfg.xml");

StandardServiceRegistryBuilder serviceBuilder = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties());
sessionFactory = configuration.buildSessionFactory(serviceBuilder.build());

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM