我正在使用Maven、Netbeans和Windows
我在上有完整配置的hibernate.cfg.xml文件"src/main/resources/hibernate.cfg.xml";
我已经三次检查了这是事实。这是我在Netbeans上的文件夹结构(图片(
当运行时,我得到这个:
Exception in thread "main" org.hibernate.internal.util.config.ConfigurationException:
Could not locate cfg.xml resource [/resources/hibernate.cfg.xml]
这是我的hibernate cfg.xml文件:
<!-- This file should be referenced in the configure() method!!! -->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<! -- url -->
<property name="hibernate.connection.url">jdbc:oracle:thin:@toshiba-pc:1521:SYSTEM</property>
<! -- username -->
<property name="hibernate.connection.username">system</property>
<!-- password -->
<property name="hibernate.connection.password">27111995</property>
<!-- database driver -->
<property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
</session-factory>
</hibernate-configuration>
在我的主课上,相关的线路是:
public static void main(String[] args) {
Configuration cfg = new Configuration();
cfg.configure("/resources/hibernate.cfg.xml");
...more code...
所以基本上,我一直试图绕过这一点,但没有成功。如有任何帮助,我们将不胜感激。
终于解决了!我的解决方案是使用System.property("user.dir"(方法创建一个新的File对象,并将其传递给Configuration构造函数:
String roothFolder = System.getProperty("user.dir");
File hibernateConfigFile = new File
(roothFolder + "/src/main/resources/hibernate.cfg.xml");
Configuration cfg = new Configuration();
cfg.configure(hibernateConfigFile);