2016-11-25 20 views
1

私はHibernateを初めて使用しています。 Eclipseを使用してHibernateプログラムを実行すると、hibernate.cfg.xmlファイルが見つかります。 私はそのファイルをsrc/main/resourcesというフォルダに入れます。私は実行可能なjarファイルを作成し、SQ.jarが それは、次のエラー実行可能なjarとして実行すると、hibernate.cfg.xmlが見つかりません

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 

次に私を与えている-jar Javaを使用して私のプログラムを実行すると は、しかし、私は私の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); 
     } 
    } 

私が間違っていることを教えてください。

答えて

0

設定中に完全なパスを与えることができます。 これを試すことができます。

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

or 

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

こんにちはRiddiを休止ご返信用 感謝を使用しているが、これはヨは、完全なパスを与えることで試すことができます:( – Sachin

+0

を動作していない場合にも、このいずれかを試すことができます設定中のcfgファイルの表示 –

0

あなたは、4.3以降

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

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