Java Eclipse创建了用户库(带有HibernateJAR)作为系统库添加到项目中

Java Eclipse创建了用户库(带有HibernateJAR)作为系统库添加到项目中,java,eclipse,hibernate,Java,Eclipse,Hibernate,我创建了一个HelloWorld hibernate应用程序(hibernate.cfg.xml+一个POJO类+一个将POJO类对象持久化到数据库中的主类)。对于这一个-我用所需的Hibernate JAR创建了用户库并将其添加到项目中,但由于某种原因,在创建自定义用户Hibernate库时,我选中了“系统库(添加到启动类路径)”复选框 我试着运行这个应用程序,结果失败了 Exception in thread "main" java.lang.ExceptionInInitializ

我创建了一个HelloWorld hibernate应用程序(hibernate.cfg.xml+一个POJO类+一个将POJO类对象持久化到数据库中的主类)。对于这一个-我用所需的Hibernate JAR创建了用户库并将其添加到项目中,但由于某种原因,在创建自定义用户Hibernate库时,我选中了“系统库(添加到启动类路径)”复选框

我试着运行这个应用程序,结果失败了

    Exception in thread "main" java.lang.ExceptionInInitializerError
    at org.hibernate.cfg.Configuration.reset(Configuration.java:309)
    at org.hibernate.cfg.Configuration.<init>(Configuration.java:275)
    at org.hibernate.cfg.Configuration.<init>(Configuration.java:279)
    at com.woworks.secondhibernate.main.HibernateTest.main(HibernateTest.java:22)
Caused by: java.lang.NullPointerException
    at org.hibernate.internal.util.ConfigHelper.getResourceAsStream(ConfigHelper.java:170)
    at org.hibernate.cfg.Environment.<clinit>(Environment.java:220)
    ... 4 more
线程“main”java.lang.ExceptionInInitializeError中的异常 位于org.hibernate.cfg.Configuration.reset(Configuration.java:309) 位于org.hibernate.cfg.Configuration(Configuration.java:275) 在org.hibernate.cfg.Configuration.(Configuration.java:279) 位于com.woworks.secondhibernate.main.HibernateTest.main(HibernateTest.java:22) 原因:java.lang.NullPointerException 位于org.hibernate.internal.util.ConfigHelper.getResourceAsStream(ConfigHelper.java:170) 在org.hibernate.cfg.Environment上(Environment.java:220) ... 4更多 如果我取消选中“系统库(添加到引导类路径)”-一切正常。有人能解释一下为什么会发生这种情况,以及“系统库(添加到引导类路径)”的目的是什么吗


谢谢

引导类路径用于运行和提供java。例如,javac(编译器)在引导类路径中使用java类来编译代码。当javac解析编译类所需的引用(例如:代码中引用的hibernate对象)时,它将使用编译类路径

这同样适用于运行java应用程序。启动类路径(或系统类路径)类对运行时可见,但对用户应用程序不可见


有关更多详细信息,请参阅本文档

当JAR添加到启动类路径时,它们的上下文与应用程序类路径上的JAR不同。我怀疑将Hibernate放在引导类路径上会给它带来麻烦,因为它试图从其类路径加载一些配置资源,但该资源仅在应用程序类路径上可用。关键是引导类路径上的任何类都不知道,并且不能引用应用程序类路径中的任何内容。

非常好的解释。。所以有两条路