Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.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 项目在Eclipse中正常运行,但不';t当导出到可运行的jar时_Java_Hibernate_Jpa - Fatal编程技术网

Java 项目在Eclipse中正常运行,但不';t当导出到可运行的jar时

Java 项目在Eclipse中正常运行,但不';t当导出到可运行的jar时,java,hibernate,jpa,Java,Hibernate,Jpa,我在尝试导出独立应用程序时遇到问题 当我使用eclise执行它时,它运行正常,但当我尝试导出到可运行的jar时,它会给我一些错误 我的persistence.xml看起来像 <persistence-unit transaction-type="RESOURCE_LOCAL" name="alctel_server_monitor"> <provider>org.hibernate.ejb.HibernatePersistenceProvider</pro

我在尝试导出独立应用程序时遇到问题

当我使用eclise执行它时,它运行正常,但当我尝试导出到可运行的jar时,它会给我一些错误

我的persistence.xml看起来像

<persistence-unit transaction-type="RESOURCE_LOCAL" name="alctel_server_monitor">

    <provider>org.hibernate.ejb.HibernatePersistenceProvider</provider>

    <class>br.com.monitor.database.vo.Servidor</class>
    <class>br.com.monitor.database.vo.Banco</class>
    <class>br.com.monitor.database.vo.Servico</class>
    <class>br.com.monitor.database.vo.alerta.Alerta</class>
    <class>br.com.monitor.database.vo.alerta.AlertaAtivo</class>
    <class>br.com.monitor.database.vo.email.Email</class>

    <exclude-unlisted-classes>true</exclude-unlisted-classes>
    <properties>
        <property name="hibernate.connection.driver_class" value="com.microsoft.sqlserver.jdbc.SQLServerDriver" />
        <property name="hibernate.connection.url" value="jdbc:sqlserver://192.168.99.222;databaseName=MONITOR;" />
        <property name="hibernate.connection.username" value="" />
        <property name="hibernate.connection.password" value="" />
        <property name="hibernate.format_sql" value="true" />
        <property name="hibernate.show_sql" value="false" />
        <property name="hibernate.dialect" value="org.hibernate.dialect.SQLServerDialect" />
        <property name="hibernate.hbm2ddl.auto" value="none" />

        <property name="hibernate.hbm2ddl.import_files_sql_extractor"
            value="org.hibernate.tool.hbm2ddl.MultipleLinesSqlCommandExtractor" />
        <property name="hibernate.connection.useUnicode" value="true" />
        <property name="hibernate.connection.characterEncoding"
            value="UTF-8" />
    </properties>
</persistence-unit>

org.hibernate.ejb.HibernatePersistenceProvider
br.com.monitor.database.vo.Servidor
br.com.monitor.database.vo.Banco
br.com.monitor.database.vo.Servico
br.com.monitor.database.vo.alerta.alerta
br.com.monitor.database.vo.alerta.AlertaAtivo
br.com.monitor.database.vo.email.email
真的

它位于src/META-INF/persistence.xml

从终端运行时得到的堆栈跟踪是:

位于java.lang.reflect.Method.invoke(未知源) 位于org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58) 原因:javax.persistence.PersistenceException:无法找到持久性单元 在org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilderOrNull(HibernatePersistenceProvider.java:99) 位于org.hibernate.ejb.HibernatePersistence.getEntityManagerFactoryBuilderOrNull(HibernatePersistence.java:93) 在org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilderOrNull(HibernatePersistenceProvider.java:86) 位于org.hibernate.ejb.HibernatePersistence.getEntityManagerFactoryBuilderOrNull(HibernatePersistence.java:101) 在org.hibernate.jpa.HibernatePersistenceProvider.createEntityManager工厂(HibernatePersistenceProvider.java:67) 位于org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:54) 位于javax.persistence.persistence.createEntityManagerFactory(persistence.java:55)

我不知道发生了什么,有人能帮我吗


谢谢大家!

我遇到了同样的问题,我通过以下方式解决了这个问题:

右键单击项目>属性>Java构建路径>排序和导出,然后选择库

右键单击项目>导出…>Runnable JAR file>将所需库复制到生成的JAR旁边的子文件夹中