我是 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/