2012-02-15 70 views
0
public class HibernateTest { 

    private static SessionFactory sessionFactory; 
    private static ServiceRegistry serviceRegistry; 

    public static void main(String ars[]){ 

     UserDetails user = new UserDetails(); 
     user.setUserId(1); 
     user.setUserName("First user"); 

     SessionFactory sessionFactory = configureSessionFactory(); 
     Session session = sessionFactory.openSession(); 
     session.beginTransaction(); 
     session.save(user); 
     session.getTransaction().commit();  
    } 

//using Hibernate API 
    private static SessionFactory configureSessionFactory() throws HibernateException { 

     Configuration configuration = new Configuration(); 
     configuration.configure(); 
     serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry(); 
     sessionFactory = configuration.buildSessionFactory(serviceRegistry); 
     return sessionFactory; 
    } 
} 

错误休眠抛出 “错误版本的.class文件号码” 错误

Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad version number in .class file 
at java.lang.ClassLoader.defineClass1(Native Method) 
at java.lang.ClassLoader.defineClass(ClassLoader.java:621) 
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124) 
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260) 
at java.net.URLClassLoader.access$100(URLClassLoader.java:56) 
at java.net.URLClassLoader$1.run(URLClassLoader.java:195) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(URLClassLoader.java:188) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:307) 
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:252) 
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) 
at hibernate.HibernateTest.configureSessionFactory(HibernateTest.java:30) 
at hibernate.HibernateTest.main(HibernateTest.java:20) 

我的Hibernate初学者。有人可以解释我在这里发生了什么问题吗?

+0

您运行的是哪个版本的Java? – Thomas 2012-02-15 21:21:37

+0

这不是Hibernate问题,您的JVM版本是否在5之前? Hibernate 4不支持JVM和5之前的版本,但我不确定,但也许Hibernate 4只适用于JVM 6+ – 2012-02-15 21:27:42

回答

0

此:

Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad version number in .class

基本上意味着你正在使用的Java版本太旧,你想运行的代码。

您正在使用哪个版本的Java?

+0

我使用java版本5和Hibernate版本4.0.1 final – 2012-02-17 06:29:48

+0

@Rizwana:嗯。也许Hibernate 4.0.1是针对Java 6构建的 - 我无法在文档中找到系统需求。 – 2012-02-17 20:49:49

0

这是java.lang.UnsupportedClassVersionError: Bad version number in .class file

您似乎具有不被运行时(JVM)的支持休眠罐子的版本错误。

0

检查使用以下命令

休眠类的JDK版本

的javap -verbose org.hibernate.SessionFactory.SessionFactory

(第一解压JAR)

确保您HibernateTest也编译在相同的版本。