java - 在 Eclipse JPA 项目中获取 UnsupportedClassVersionError 这是没有意义的

标签 java eclipse jpa java-7 java-6

我这里遇到了一个奇怪的情况。当我到处使用 Java 1.6 时,出现有关 Java 1.7 的错误。

我正在使用Eclipse Kepler 32 位
我使用的 JPA 实现是 EclipseLink 2.6.0

在窗口 --> 首选项 --> Java --> 安装的 JRE 中,我选中了 jdk1.6.0_34(默认),其位置为 C:\Program Files (x86)\Java\jdk1.6.0 _34。这是打印屏幕:

Eclipse Preferences Installed JREs Window

我创建了一个新的 JPA 项目。在目标运行时中,我选择了 jdk1.6.0_34。这是打印屏幕:

Eclipse New JPA Project Window

我单击“配置”部分中的“修改...”按钮以确认我正在使用 Java 1.6。这是打印屏幕:

Eclipse Project Facets Window

然后我创建了一个简单的类来测试 JPA:

package com.test;

import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

public class TestJPA {
    public static void main(String[] args) {
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("MyTestJpaProject");
        emf.close();
    }
}

当我运行它时,我收到一条错误消息:

Exception in thread "main" java.lang.UnsupportedClassVersionError: org/eclipse/persistence/jpa/PersistenceProvider : Unsupported major.minor version 51.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
    at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    at javax.persistence.spi.PersistenceProviderResolverHolder$DefaultPersistenceProviderResolver.getPersistenceProviders(PersistenceProviderResolverHolder.java:117)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:76)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54)
    at com.test.TestJPA.main(TestJPA.java:16)

这很奇怪。我到处都使用 Java 1.6,但 Eclipse 给我这个关于 Java 1.7 的错误消息。可能是什么原因?

最佳答案

这意味着您正在使用的某些插件是使用 java 1.7 构建的,并且需要 1.7 或更高版本的 jre。检查包含堆栈跟踪中提到的类的插件。

关于java - 在 Eclipse JPA 项目中获取 UnsupportedClassVersionError 这是没有意义的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30085261/

相关文章:

mysql - JPA 映射的性能

java - 我应该将哪个版本的 Java 与 Cassandra 2.0 一起使用?

java - 在 html2image(java) 中使用 css

java - Eclipse J2EE Preview 从 .metadata 目录而不是 m2e-wtp/web-resources 读取未过滤的资源

java - Eclipse CSV下载截断数据

java - JPA : defining a complex @OneToMany relationship

hibernate - @Basic(optional = false) vs @Column(nullable = false) vs @NotNull

java - Android Studio 说 "Cause: not a valid name: class"

java - Apache HttpComponents URIBuilder 具有多值参数

android - 如何制作 GCM servlet?