我搜索了这个问题
How to fix java.lang.UnsupportedClassVersionError: Unsupported major.minor version
但答案对我不起作用
我正在使用jdk 1.7,我将编译器设置为1.7.0_79,这意味着是java 7但是当我运行时我仍然得到错误,我将项目字节代码版本设置为1.7但是相同的消息
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/hibernate/jpa/HibernatePersistenceProvider : Unsupported major.minor version 52.0
尝试加载时发生此异常 此行上的persistence.xml
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
并在此行的java代码中
EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("sample");
答案 0 :(得分:4)
我在使用Hibernate处理项目时遇到了同样的问题:session_start();
error_reporting(-1);
ini_set('display_errors', 1);
include 'vendor/autoload.php';
use Facebook\FacebookApp;
use Facebook\Facebook;
use Facebook\FacebookRequest;
$app_id = 'xxxxxxxxxxxx';
$psswd = 'xxxxxxxxxxxx';
$group_id = 'xxxxxxxxxxxx';
$fb = new Facebook([
'app_id' => $app_id,
'app_secret' => $psswd,
'default_graph_version' => 'v2.4',
]);
$request = $fb->request('POST', '/'.$group_id.'/feed',array('message'=>'This is a test message'));
// Send the request to Graph
try {
$response = $fb->getClient()->sendRequest($request);
} catch(Facebook\Exceptions\FacebookResponseException $e) {
// When Graph returns an error
echo 'Graph returned an error: ' . $e->getMessage();
exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
// When validation fails or other local issues
echo 'Facebook SDK returned an error: ' . $e->getMessage();
exit;
}
$graphNode = $response->getGraphNode();
print_r($graphNode);
。
更新IntelliJ和Maven项目设置(如所述here和here)以使用相同的Java版本进行编译和运行并未解决问题。
如前Caused by: java.lang.UnsupportedClassVersionError: org/hibernate/jpa/HibernatePersistenceProvider : Unsupported major.minor version 52.0
所述,如果您想使用Adrian Shum
,则必须检查Java 7
相关的库,因为Hibernate
(Hibernate System Requirements)。< / p>
就我而言,通过更改
,降低POM文件中的库版本可以解决问题Hibernate 5.2 and later versions require at least Java 1.8
进入
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.2.6.Final</version>
</dependency>
答案 1 :(得分:1)
我有同样的问题,我使用JDK7编译它的方法是将hibernate-jpamodelgen添加到我的pom.xml中。
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-jpamodelgen</artifactId>
<version>5.x.x.Final</version>
</dependency>
添加此项应该可以解决问题,只需选择您正在使用的版本
答案 2 :(得分:0)
&#34;不支持的major.minor版本&#34;通常会出现,因为您使用比您尝试运行它的java更大版本的java编译java程序。
因此,在您的情况下,您使用java 7编译了应用程序,但您可能正在尝试使用java 6或更小版本运行它。
更改运行应用程序的java版本以匹配您正在编译的版本(在您的情况下为7)。
答案 3 :(得分:0)
由于休眠核心版本5.2及更高版本不支持JDK 1.7。因此,请将Maven依赖项更改为JDK 1.7的5.1.x和更低版本。但是在所有较低版本的hibernate核心中都缺少所有的“ org.hibernate.jpa”包类。
如果您需要休眠持久性提供程序,则针对未找到的类获取异常。因此您应该添加一个新的依赖项。
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>5.1.4.Final</version>
</dependency>