我是第一次使用Hibernate,一直在尝试从命令行(Windows)运行SchemaExport hdm2ddl工具,如下所示:java -cp "lib/*" org.hibernate.tool.hbm2ddl.SchemaExport --config=src/hibernate.cfg.xml --create src/hello/Message.hbm.xml
我的目录结构如下:
- HelloWorld
- bin
- lib (all of the required jars - list omitted for brevity)
- src
- hello (HelloWorld.java, Message.java & Message.hbm.xml)
- persistence (HibernateUtil.java)
- hibernate.cfg.xml
- log4j.properties
尝试运行该命令会产生以下错误:
log4j:WARN No appenders could be found for logger (org.jboss.logging).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
org.hibernate.internal.util.config.ConfigurationException: Could not locate cfg.xml resource [src/hibernate.cfg.xml]
at org.hibernate.boot.cfgxml.internal.ConfigLoader.loadConfigXmlResource(ConfigLoader.java:53)
at org.hibernate.boot.registry.StandardServiceRegistryBuilder.configure(StandardServiceRegistryBuilder.java:163)
at org.hibernate.tool.hbm2ddl.SchemaExport.buildStandardServiceRegistry(SchemaExport.java:579)
at org.hibernate.tool.hbm2ddl.SchemaExport.main(SchemaExport.java:546)
我的研究到目前为止:
1.命令找不到hibernate.cfg.xml文件。将命令中文件的拼写更改为错误的拼写也会产生相同的错误。
1.已将cfg.xml文件复制到classpath(lib)和HelloWorld目录中。错误仍然存在。
这基本上是“使用Hibernate的Java持久性”中的示例,但从命令行运行它,而不是使用ant。
1条答案
按热度按时间q7solyqu1#
Hibernate似乎在类路径根文件夹中查找“hib. cfg.xml”文件。您可以尝试以下操作:
1.将“
hibernate.cfg.xml
“文件复制到当前文件夹(运行java ...
命令的位置)1.将当前文件夹(“
.
”)添加到类路径。(注意:您还需要添加类路径分隔符字符。在Linux上为“:
”,在Windows上为“;
”)因此,最后的命令(在Linux上)应该是: