创建在没有Maven的情况下构建Hibernate应用程序时出错

fjaof16o  于 2022-09-21  发布在  Maven
关注(0)|答案(2)|浏览(143)

我正在学习休眠,所以我做了一个小应用,用MySQL作为数据库进行CRUD操作。然而,我收到了一些错误,并且我在任何地方都找不到解决方案。SDK 17.0.2,我不是使用maven,而且所有Hibernate最终JAR文件都已添加

我的班级:

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

import com.luv2code.hibernate.demo.entity.Student;

public class CreateStudentDemo {

    public static void main(String[] args) {
        // Create session factory

        SessionFactory factory= new Configuration()
                               .configure("hibernate.cfg.xml")
                               .addAnnotatedClass(Student.class)
                               .buildSessionFactory();

        //Create session
        Session session = factory.getCurrentSession();

        try {
            //Create a Student object
            System.out.println("Creating new student");
            Student tempStudent = new Student("Pau;", "Wall", "paul@luv2code.com");

            //Start a transaction
            session.beginTransaction();

            //save the student object
            session.save(tempStudent);

            //commit transaction
            session.getTransaction().commit();
        }
        finally {
            factory.close();
        }

    }

}

运行时错误:

java.security.PrivilegedActionException: java.lang.NoSuchMethodException: sun.misc.Unsafe.defineClass(java.lang.String,[B,int,int,java.lang.ClassLoader,java.security.ProtectionDomain)
Caused by: java.lang.NoSuchMethodException: sun.misc.Unsafe.defineClass(java.lang.String,[B,int,int,java.lang.ClassLoader,java.security.ProtectionDomain) 
Exception in thread "main" java.lang.NullPointerException: Cannot invoke "java.lang.reflect.Method.invoke(Object, Object[])" because "com.sun.xml.bind.v2.runtime.reflect.opt.Injector.defineClass" is null
pexxcrt2

pexxcrt21#

Java从Java 9及更高版本中删除了java.xml.ind。您需要手动将these JAR文件添加到库中,基本上可以通过这种方式添加到库中。如果你使用IntelliJ,这是最简单的方式:

Jaxb-impl-2.3.0.jar

<dependency>
    <groupId>com.sun.xml.bind</groupId>
    <artifactId>jaxb-impl</artifactId>
    <version>2.3.0</version>
</dependency>

Jaxb-core-2.3.0.jar

<dependency>
    <groupId>com.sun.xml.bind</groupId>
    <artifactId>jaxb-core</artifactId>
    <version>2.3.0</version>
</dependency>

Jaxb-api-2.3.1.jar

<dependency>
    <groupId>javax.xml.bind</groupId>
    <artifactId>jaxb-api</artifactId>
    <version>2.3.1</version>
</dependency>

Javax.activation-api-1.2.0.jar

<dependency>
    <groupId>com.sun.activation</groupId>
    <artifactId>javax.activation</artifactId>
    <version>1.2.0</version>
</dependency>

如果您使用IntelliJ,下面是通过IDE获取这些文件的步骤

1.进入项目结构:

1.库,点击+符号

1.Chick to From Maven:

1.将这些依赖项粘贴到搜索中。

它将自动找到要下载的确切JAR文件,Kist粘贴它并单击Enter That is It。

以后,您也可以将这些文件添加到类路径中,以防万一:

rjee0c15

rjee0c152#

Java从Java 9及更高版本中删除了java.xml.ind。以下是ECLIPSE的解决方案:

在Eclipse IDE中:

1.下载JAR文件,粘贴到lib文件夹中:

1.转到项目属性:最后一行

1.完成以下步骤:

编码快乐!:)

相关问题