1

かなり単純なものに違いないことはわかっていますが、検索するのに約2時間かかり、今まで理解できる解決策が見つかりませんでした.

Eclipse コンソールからは問題なくプログラムを使用できますが、Windows コマンド ラインからプログラムを実行しようとすると、Hibernate クラスからエラーが発生します。

Eclipse から実行すると、次のようになります。

Maven + Hibernate + MySQL
Out 08, 2013 2:13:56 AM org.hibernate.annotations.common.Version <clinit>
INFO: HCANN000001: Hibernate Commons Annotations {4.0.1.Final}
Out 08, 2013 2:13:56 AM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {4.2.0.Final}
Out 08, 2013 2:13:56 AM org.hibernate.cfg.Environment <clinit>
INFO: HHH000206: hibernate.properties not found
Out 08, 2013 2:13:56 AM org.hibernate.cfg.Environment buildBytecodeProvider
INFO: HHH000021: Bytecode provider name : javassist
Out 08, 2013 2:13:56 AM org.hibernate.cfg.Configuration configure
INFO: HHH000043: Configuring from resource: /hibernate.cfg.xml
Out 08, 2013 2:13:56 AM org.hibernate.cfg.Configuration getConfigurationInputStream
INFO: HHH000040: Configuration resource: /hibernate.cfg.xml
Out 08, 2013 2:13:56 AM org.hibernate.cfg.Configuration addResource
INFO: HHH000221: Reading mappings from resource: emp_geo/entity/Posicao.hbm.xml
Out 08, 2013 2:13:56 AM org.hibernate.cfg.Configuration doConfigure
INFO: HHH000041: Configured SessionFactory: null
Out 08, 2013 2:13:56 AM org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl     configure
INFO: HHH000402: Using Hibernate built-in connection pool (not for production use!)
Out 08, 2013 2:13:56 AM org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
INFO: HHH000115: Hibernate connection pool size: 20
Out 08, 2013 2:13:56 AM org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
INFO: HHH000006: Autocommit mode: false
Out 08, 2013 2:13:56 AM org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
INFO: HHH000401: using driver [com.mysql.jdbc.Driver] at URL [jdbc:mysql://54.214.103.119:3306/emp_geo]
Out 08, 2013 2:13:56 AM org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
INFO: HHH000046: Connection properties: {user=xxxxx, password=****}
Out 08, 2013 2:13:59 AM org.hibernate.dialect.Dialect <init>
INFO: HHH000400: Using dialect: org.hibernate.dialect.MySQL5Dialect
Out 08, 2013 2:13:59 AM org.hibernate.engine.transaction.internal.TransactionFactoryInitiator initiateService
INFO: HHH000399: Using default transaction strategy (direct JDBC transactions)
Out 08, 2013 2:13:59 AM org.hibernate.hql.internal.ast.ASTQueryTranslatorFactory <init>
INFO: HHH000397: Using ASTQueryTranslatorFactory
Out 08, 2013 2:13:59 AM org.hibernate.search.Version <clinit>
INFO: HSEARCH000034: Hibernate Search 4.3.0.Alpha1
Out 08, 2013 2:13:59 AM org.hibernate.search.impl.ConfigContext getLuceneMatchVersion
WARN: HSEARCH000075: Configuration setting hibernate.search.lucene_version was not specified, using LUCENE_CURRENT.

コマンドラインから実行すると、次のようになります。

Maven + Hibernate + MySQL
Exception in thread "main" java.lang.NoClassDefFoundError: org/hibernate/cfg/Configuration
    at com.disko.hibernate.persistence.HibernateUtil.configureSessionFactory (HibernateUtil.java:15)
    at com.disko.hibernate.persistence.HibernateUtil.getSessionFactory(HibernateUtil.java:23)
    at com.disko.hibernate.App.main(App.java:21)
Caused by: java.lang.ClassNotFoundException: org.hibernate.cfg.Configuration
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    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)
    ... 3 more

私はすでに Java Build Path の中を調べており、Maven Dependencies を選択してエクスポートしています。誰かが私を助けてくれることを願っています。ありがとう...

4

2 に答える 2

3

これは、Hibernate と Mysql の環境が適切に設定されていないことを意味します。組み込みの依存関係があるため、Eclipseで実行されます。したがって、必要なライブラリを正しいクラスパスに追加してから試してください。

于 2013-10-08T05:34:17.453 に答える
2

コンソールからプログラムを実行しているときに、クラスパスに必要な jar がありません。必要なすべてのライブラリー/jar を eclipse で確認し、リストを取得し、コンソールで実行中にクラスパス内のそれらの jar を確認できます。

于 2013-10-08T05:32:28.447 に答える