Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.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 冬眠配置不启动jar文件_Java_Hibernate_Maven_Jar - Fatal编程技术网

Java 冬眠配置不启动jar文件

Java 冬眠配置不启动jar文件,java,hibernate,maven,jar,Java,Hibernate,Maven,Jar,我用Maven将我的项目打包在jar中。当我启动一个jar文件时,我发现有一些例外: Exception in thread "main" java.lang.NoClassDefFoundError: org/hibernate/cfg/Configuration at util.HibernateUtil.buildSessionFactory(HibernateUtil.java:12) at util.HibernateUtil.<clinit>(Hibern

我用Maven将我的项目打包在jar中。当我启动一个jar文件时,我发现有一些例外:

Exception in thread "main" java.lang.NoClassDefFoundError: org/hibernate/cfg/Configuration
    at util.HibernateUtil.buildSessionFactory(HibernateUtil.java:12)
    at util.HibernateUtil.<clinit>(HibernateUtil.java:8)
    at model.services.BusService.setBuses(BusService.java:30)
    at view.Runner.main(Runner.java:20)
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)
    ... 4 more
My BusService.java

package model.services;

import model.entities.Bus;
import model.repositories.BusRepository;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import util.HibernateUtil;
import java.util.ArrayList;
import java.util.List;

public class BusService {
private BusRepository busRepository;

public BusService() {
    busRepository = BusRepository.getInstance();
}

public BusRepository getBusRepository() {
    return busRepository;
}

public List<Bus> getBuses() {
    return busRepository.getBuses();
}

public void setBuses() {
    SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
    Session session = sessionFactory.openSession();
    Transaction tx = session.beginTransaction();
    try {
        SQLQuery query = session.createSQLQuery("SELECT ID, NUMBER , Rote_ID FROM bus").addEntity(Bus.class);
        List<Bus> buses = query.list();
        buses.size();
        busRepository.setBuses(buses);
    } finally {
        tx.commit();
        session.close();
    }
}

public List<Bus> findByNumber(Integer number) {
    SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
    Session session = sessionFactory.openSession();
    Transaction tx = session.beginTransaction();
    List<Bus> busesFinder = new ArrayList<Bus>();
    try {
        SQLQuery query = session.createSQLQuery("SELECT ID, NUMBER , Rote_ID FROM bus");
        List<Bus> buses = query.list();
        for (Bus bus : buses) {
            if (bus.getNumber() == number)
                busesFinder.add(bus);
        }
        return busesFinder;
    } finally {
        tx.commit();
        session.close();
    }
}

public void save(Bus bus) {
    SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
    Session session = sessionFactory.openSession();
    Transaction tx = session.beginTransaction();
    try {
        session.save(bus);
    } finally {
        tx.commit();
        session.close();
    }
}
我使用了另一个hibernate版本,但每次都有例外。 现在我的hibernate版本是5.0.11.Final

请帮我解决这个问题。
我需要无例外地正确启动jar文件。

jar文件通常不包含与WAR文件不同的库依赖项,因此您需要使用maven shade plugin之类的工具手动添加它们:


它不起作用。我添加了这样的插件:hibernate版本中会有问题吗?jar-tf名称显示了什么?包括Hibernate类吗?现在我没有关于org.Hibernate.cfg的例外,谢谢。但是maven创建了新的xml文件dependency-reduced-pom.xml。当我编译代码时,我的应用程序找不到hibernate.cfg.xml。当我像“jar-tf NAME\u OF_YOUR\u SHADED\u jar”一样打开jar时,我得到了“Error:not find or load main class jar”。我显示的jar-tf命令没有启动应用程序,它显示了存档的内容,因此,如果您遇到无法定位主文件的错误,则说明您没有使用正确的命令!谢谢!
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>3.0.2</version>
            <configuration>
                <archive>
                    <manifest>
                        <addClasspath>true</addClasspath>
                        <mainClass>view.Runner</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>
    </plugins>
    <resources>
        <resource>
            <directory>hibernate.cfg.xml</directory>
        </resource>
    </resources>
</build>
<dependencies>
    <dependency>
        <groupId>org.hibernate.javax.persistence</groupId>
        <artifactId>hibernate-jpa-2.1-api</artifactId>
        <version>1.0.0.Final</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>5.0.11.Final</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>5.0.11.Final</version>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>6.0.6</version>
    </dependency>
</dependencies>
public class HibernateUtil {
private static final SessionFactory sessionFactory = buildSessionFactory();

private static SessionFactory buildSessionFactory() {
    try {
        return new Configuration().configure().buildSessionFactory();
    } catch (Exception ex) {
        return (SessionFactory) new Exception(ex);
    }
}

public static SessionFactory getSessionFactory() {
    return sessionFactory;
}

public static void shutdown() {
    getSessionFactory().close();
}}
package model.services;

import model.entities.Bus;
import model.repositories.BusRepository;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import util.HibernateUtil;
import java.util.ArrayList;
import java.util.List;

public class BusService {
private BusRepository busRepository;

public BusService() {
    busRepository = BusRepository.getInstance();
}

public BusRepository getBusRepository() {
    return busRepository;
}

public List<Bus> getBuses() {
    return busRepository.getBuses();
}

public void setBuses() {
    SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
    Session session = sessionFactory.openSession();
    Transaction tx = session.beginTransaction();
    try {
        SQLQuery query = session.createSQLQuery("SELECT ID, NUMBER , Rote_ID FROM bus").addEntity(Bus.class);
        List<Bus> buses = query.list();
        buses.size();
        busRepository.setBuses(buses);
    } finally {
        tx.commit();
        session.close();
    }
}

public List<Bus> findByNumber(Integer number) {
    SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
    Session session = sessionFactory.openSession();
    Transaction tx = session.beginTransaction();
    List<Bus> busesFinder = new ArrayList<Bus>();
    try {
        SQLQuery query = session.createSQLQuery("SELECT ID, NUMBER , Rote_ID FROM bus");
        List<Bus> buses = query.list();
        for (Bus bus : buses) {
            if (bus.getNumber() == number)
                busesFinder.add(bus);
        }
        return busesFinder;
    } finally {
        tx.commit();
        session.close();
    }
}

public void save(Bus bus) {
    SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
    Session session = sessionFactory.openSession();
    Transaction tx = session.beginTransaction();
    try {
        session.save(bus);
    } finally {
        tx.commit();
        session.close();
    }
}
SessionFactory sessionFactory = HibernateUtil.getSessionFactory();