为什么我不能从控制台运行 hibernate maven 应用程序?

马泰·贝莱尼耶西

我正在尝试运行 Hibernate 应用程序。我可以从 NetBeans IDE 执行此操作,当我要使用 mvn install 命令行时,它会成功构建,但是当我尝试在目标文件夹 (java -jar hibernate-1.0-SNAPSHOT.jar) 中运行 jar 文件时,我得到以下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: org/hibernate/cfg/Configuration
        at hibernate.HibernateUtil.getSessionFactory(HibernateUtil.java:11)
        at hibernate.SmartDevice.main(SmartDevice.java:13)
Caused by: java.lang.ClassNotFoundException: org.hibernate.cfg.Configuration
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        ... 2 more

它没有找到Hibernate的Configuration类,但是我在我的pom.xml中添加了hibernate-core依赖:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>hibernate</groupId>
    <artifactId>hibernate</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.7</maven.compiler.source>
        <maven.compiler.target>1.7</maven.compiler.target>
    </properties>

    <dependencies>
        <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-core -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>5.4.1.Final</version>

        </dependency>


        <!-- https://mvnrepository.com/artifact/com.h2database/h2 -->
        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <version>1.4.197</version>
        </dependency>  

        <!-- https://mvnrepository.com/artifact/javax.persistence/persistence-api -->
        <dependency>
            <groupId>javax.persistence</groupId>
            <artifactId>persistence-api</artifactId>
            <version>1.0.2</version>
        </dependency>


    </dependencies>

    <build>
        <plugins>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>exec-maven-plugin</artifactId>
                    <version>1.2.1</version>
                </plugin>
                <plugin>
      <!-- Build an executable JAR -->
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <version>3.1.0</version>
                    <configuration>
                      <archive>
                        <manifest>
                          <mainClass>hibernate.SmartDevice</mainClass>
                        </manifest>
                      </archive>
                    </configuration>
            </plugin>
        </plugins>
    </build>


    <name>hibernate</name>

</project>

这是我的 hibernate.cfg.xml:

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD//EN"
        "http://www.hibernate.org/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
    <session-factory>
        <property name="connection.driver_class">org.h2.Driver</property>
        <property name="connection.url">jdbc:h2:mem:test;DB_CLOSE_DELAY=-1</property>
        <property name="dialect">org.hibernate.dialect.H2Dialect</property>
        <property name="show_sql">true</property>
        <property name="hbm2ddl.auto">create</property>
        <mapping class="hibernate.User"/>
    </session-factory>
</hibernate-configuration>

我应该添加其他东西吗?或者为什么会出现这个错误?谢谢您的帮助!

丹尼尔

ClassNotFoundException意味着org.hibernate.cfg.Configuration该类未包含在您的类路径中。在 IDE 中查找该类,我们看到它包含在hibernate-core-5.4.1-Final.jar文件中。

通过运行java -jar hibernate-1.0-SNAPSHOT.jar,附加的依赖项会丢失。

有一些方法可以使用所需的依赖项打包 jar,一种是使用maven-assembly-plugin,或者使用 shade 插件。

作为“手动”替代方案,您可以 cd 到您的项目根文件夹(包含pom.xml文件),然后执行

mvn clean package
mvn dependency:copy-dependencies
java -cp target/*;target/dependency/* hibernate.SmartDevice

dependency插件将所有需要的 jars 复制到target\dependency文件夹中,最后一个命令将所有 jars 添加到类路径并运行您的 java 类。

编辑以上命令适用于Windows;在 Linux 上,您将使用“:”代替“;”

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么我的控制台应用程序从System32运行?

来自分类Dev

为什么我在使用Spring MVC + Hibernate应用程序的控制器中出现NullPointerException

来自分类Dev

Maven JavaFx 项目编译但从控制台运行给出“缺少 JavaFX 应用程序类”错误消息

来自分类Dev

如何将Spring Hibernate Maven应用程序更改为多模型Maven项目

来自分类Dev

当GUI应用程序运行良好时,为什么没有ODEX文件的控制台android java应用程序不能正常工作?

来自分类Dev

在不同于开发Java应用程序的机器上运行Java应用程序(Maven)

来自分类Dev

为什么我不能从“ root”(未指定协议)运行GUI应用程序?

来自分类Dev

旧版Hibernate应用程序的预期升级路径是什么?

来自分类Dev

两个Maven项目从Web应用程序(Hibernate Spring)拆分了服务?

来自分类Dev

为什么在提示文字时C#控制台应用程序会停止运行?

来自分类Dev

为什么运行控制台应用程序的容器在启动后仅退出

来自分类Dev

为什么在提示文字时C#控制台应用程序会停止运行?

来自分类Dev

无法使用Maven依赖项运行Htmlunit应用程序

来自分类Dev

Maven应用程序缺少运行时jar

来自分类Dev

Maven应用程序缺少运行时jar

来自分类Dev

spring-boot,maven:无法运行或打包应用程序

来自分类Dev

为什么我的控制台应用程序立即消失

来自分类Dev

为什么我的控制台应用程序立即消失

来自分类Dev

为什么我的控制台应用程序发出蜂鸣声?

来自分类Dev

为什么我的控制台应用程序不等待第37和38行?

来自分类Dev

为什么在控制台购买时无法在我的应用程序中使用此功能?

来自分类Dev

为什么我的节点应用程序没有登录到终端或Chrome控制台?

来自分类Dev

为什么我需要多次输入 exit 命令才能离开控制台应用程序?

来自分类Dev

获取运行控制台应用程序的程序的名称

来自分类Dev

代码在LinqPad中并行运行,但不在控制台应用程序中并行运行...为什么?

来自分类Dev

为什么我不能运行WatchOS 2应用程序?

来自分类Dev

为什么MacOS应用程序不能从Launchpad或Finder运行,而可以从Terminal运行呢?

来自分类Dev

为什么从Git Bash运行.net核心控制台应用程序时,ReadKey会引发异常?

来自分类Dev

Spring Boot 应用程序通过 Maven 运行良好,但不能通过 IDE Intellij IDEA

Related 相关文章

  1. 1

    为什么我的控制台应用程序从System32运行?

  2. 2

    为什么我在使用Spring MVC + Hibernate应用程序的控制器中出现NullPointerException

  3. 3

    Maven JavaFx 项目编译但从控制台运行给出“缺少 JavaFX 应用程序类”错误消息

  4. 4

    如何将Spring Hibernate Maven应用程序更改为多模型Maven项目

  5. 5

    当GUI应用程序运行良好时,为什么没有ODEX文件的控制台android java应用程序不能正常工作?

  6. 6

    在不同于开发Java应用程序的机器上运行Java应用程序(Maven)

  7. 7

    为什么我不能从“ root”(未指定协议)运行GUI应用程序?

  8. 8

    旧版Hibernate应用程序的预期升级路径是什么?

  9. 9

    两个Maven项目从Web应用程序(Hibernate Spring)拆分了服务?

  10. 10

    为什么在提示文字时C#控制台应用程序会停止运行?

  11. 11

    为什么运行控制台应用程序的容器在启动后仅退出

  12. 12

    为什么在提示文字时C#控制台应用程序会停止运行?

  13. 13

    无法使用Maven依赖项运行Htmlunit应用程序

  14. 14

    Maven应用程序缺少运行时jar

  15. 15

    Maven应用程序缺少运行时jar

  16. 16

    spring-boot,maven:无法运行或打包应用程序

  17. 17

    为什么我的控制台应用程序立即消失

  18. 18

    为什么我的控制台应用程序立即消失

  19. 19

    为什么我的控制台应用程序发出蜂鸣声?

  20. 20

    为什么我的控制台应用程序不等待第37和38行?

  21. 21

    为什么在控制台购买时无法在我的应用程序中使用此功能?

  22. 22

    为什么我的节点应用程序没有登录到终端或Chrome控制台?

  23. 23

    为什么我需要多次输入 exit 命令才能离开控制台应用程序?

  24. 24

    获取运行控制台应用程序的程序的名称

  25. 25

    代码在LinqPad中并行运行,但不在控制台应用程序中并行运行...为什么?

  26. 26

    为什么我不能运行WatchOS 2应用程序?

  27. 27

    为什么MacOS应用程序不能从Launchpad或Finder运行,而可以从Terminal运行呢?

  28. 28

    为什么从Git Bash运行.net核心控制台应用程序时,ReadKey会引发异常?

  29. 29

    Spring Boot 应用程序通过 Maven 运行良好,但不能通过 IDE Intellij IDEA

热门标签

归档