Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用hibernate配置为maven eclipse项目创建可运行的jar文件_Java_Eclipse_Hibernate_Maven_Jar - Fatal编程技术网

Java 如何使用hibernate配置为maven eclipse项目创建可运行的jar文件

Java 如何使用hibernate配置为maven eclipse项目创建可运行的jar文件,java,eclipse,hibernate,maven,jar,Java,Eclipse,Hibernate,Maven,Jar,我试图用hibernate配置从EclipseMaven项目生成一个jar文件 这是我项目的结构,我在resources/和src/main/resources/文件夹中都有hibernate.cfg.xml文件。我通过从导出选项中选择runnable jar file来创建jar文件。(由于得到了客户的帮助) 这是我在运行可执行jar文件时遇到的错误: ehsanik$ java -jar oh_oh.jar log4j:WARN No appenders could be found fo

我试图用hibernate配置从EclipseMaven项目生成一个jar文件

这是我项目的结构,我在resources/和src/main/resources/文件夹中都有hibernate.cfg.xml文件。我通过从导出选项中选择runnable jar file来创建jar文件。(由于得到了客户的帮助)

这是我在运行可执行jar文件时遇到的错误:

ehsanik$ java -jar oh_oh.jar 
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.
Exception in thread "main" java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)
Caused by: java.lang.ExceptionInInitializerError
    at com.jvmhub.tutorial.App.StartDB(App.java:25)
    at CopyOfMain.main(CopyOfMain.java:7)
    ... 5 more
Caused by: org.hibernate.HibernateException: /hibernate.cfg.xml not found
    at org.hibernate.internal.util.ConfigHelper.getResourceAsStream(ConfigHelper.java:173)
    at org.hibernate.cfg.Configuration.getConfigurationInputStream(Configuration.java:1940)
    at org.hibernate.cfg.Configuration.configure(Configuration.java:1921)
    at org.hibernate.cfg.Configuration.configure(Configuration.java:1901)
    at com.jvmhub.tutorial.App.StartDB(App.java:19)
    ... 6 more

TL;灾难恢复解决方案

将您的
hibernate.cfg.xml
放入
src/main/resource
中。那就不要出口了 您的项目由eclipse的导出功能完成。而是使用maven汇编插件来创建一个可执行的jar。使用
mvn包组件运行:单个

eclipse做什么以及为什么不工作

如果您在eclipse选项中选择“导出”,您编译的类(由eclipse编译)将被放入该jar中。但是Eclipse对这个问题一无所知。它只会将文件保留在文件夹中。另一方面,Maven将把
src/main/resources
-文件夹中的所有资源复制到jar文件的根目录中

如何读取您看到的错误

第一个错误:

log4j:WARN No appenders could be found for logger (org.jboss.logging).
log4j:WARN Please initialize the log4j system properly.
这意味着log4j没有找到log4j.properties或.xml。它是未配置的。这是第一个提示,您的构建没有成功

第二个错误:

Caused by: org.hibernate.HibernateException: /hibernate.cfg.xml not found
第二个提示是,您的资源不在库预期的位置(本例中为hibernate)