如何解决java.lang.IollegalArgumentException:不支持的类文件主版本61,Entity是



我正试图用数据库开发一个应用程序,但我遇到了很多错误,比如java.lang.IllegalArgumentException:不支持的类文件主版本61[EL Severe]:元数据:2022-01-26 17:43:20.982--ServerSession(422250493(--database.model.StageEntity类是使用不支持的JDK编译的。将此错误报告给EclipseLink开源项目用于通过映射创建的每个实体。这是一个Maven项目,所以我没有找到任何关于它的信息,只有gradle。我在java 17(17.0.2(上工作,我不熟悉intellij或java,希望有人能为我的问题找到答案。这是我的persistence.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<persistence-unit name="PersistenceMIP">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<class>database.model.StageEntity</class>
<class>database.model.StageTeamEntity</class>
<class>database.model.TeamEntity</class>
<class>database.model.UserEntity</class>
<properties>
<property name="eclipselink.jdbc.url" value="jdbc:postgresql://localhost:5432/MIP"/>
<property name="eclipselink.jdbc.driver" value="org.postgresql.Driver"/>
<property name="eclipselink.jdbc.user" value="postgres"/>
<property name="eclipselink.jdbc.password" value="root"/>
</properties>
</persistence-unit>

这是我的pom.xml文件

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>MIP1</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>17.0.2</maven.compiler.source>
<maven.compiler.target>17.0.2</maven.compiler.target>
</properties> <dependencies>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>17.0.1</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-fxml</artifactId>
<version>17.0.1</version>
</dependency>

<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>eclipselink</artifactId>
<version>2.7.7</version>
</dependency>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>javax.persistence</artifactId>
<version>2.2.1</version>
</dependency>

<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.2.2</version>
</dependency>

这里有一个lith,里面有我所有的警告和错误

enter code here[EL Info]: transaction: 2022-01-26 17:43:20.954--ServerSession(422250493)--property eclipselink.jdbc.user is deprecated, property javax.persistence.jdbc.user should be used instead.
[EL Info]: transaction: 2022-01-26 17:43:20.959--ServerSession(422250493)--property eclipselink.jdbc.driver is deprecated, property javax.persistence.jdbc.driver should be used instead.
[EL Info]: transaction: 2022-01-26 17:43:20.96--ServerSession(422250493)--property eclipselink.jdbc.url is deprecated, property javax.persistence.jdbc.url should be used instead.
[EL Info]: transaction: 2022-01-26 17:43:20.96--ServerSession(422250493)--property eclipselink.jdbc.password is deprecated, property javax.persistence.jdbc.password should be used instead.
[EL Severe]: metadata: 2022-01-26 17:43:20.982--ServerSession(422250493)--The database.model.StageEntity class was compiled with an unsupported JDK. Report this error to the EclipseLink open source project.
java.lang.IllegalArgumentException: Unsupported class file major version 61
[EL Severe]: metadata: 2022-01-26 17:43:20.984--ServerSession(422250493)--The database.model.StageEntity class was compiled with an unsupported JDK. Report this error to the EclipseLink open source project.
java.lang.ArrayIndexOutOfBoundsException: Index 8 out of bounds for length 0
[EL Severe]: metadata: 2022-01-26 17:43:20.984--ServerSession(422250493)--The database.model.StageTeamEntity class was compiled with an unsupported JDK. Report this error to the EclipseLink open source project.
java.lang.IllegalArgumentException: Unsupported class file major version 61
[EL Severe]: metadata: 2022-01-26 17:43:20.985--ServerSession(422250493)--The database.model.StageTeamEntity class was compiled with an unsupported JDK. Report this error to the EclipseLink open source project.
java.lang.ArrayIndexOutOfBoundsException: Index 8 out of bounds for length 0
[EL Severe]: metadata: 2022-01-26 17:43:20.985--ServerSession(422250493)--The database.model.TeamEntity class was compiled with an unsupported JDK. Report this error to the EclipseLink open source project.
java.lang.IllegalArgumentException: Unsupported class file major version 61
[EL Severe]: metadata: 2022-01-26 17:43:20.985--ServerSession(422250493)--The database.model.TeamEntity class was compiled with an unsupported JDK. Report this error to the EclipseLink open source project.
java.lang.ArrayIndexOutOfBoundsException: Index 8 out of bounds for length 0
[EL Severe]: metadata: 2022-01-26 17:43:20.985--ServerSession(422250493)--The database.model.UserEntity class was compiled with an unsupported JDK. Report this error to the EclipseLink open source project.
java.lang.IllegalArgumentException: Unsupported class file major version 61
[EL Severe]: metadata: 2022-01-26 17:43:20.986--ServerSession(422250493)--The database.model.UserEntity class was compiled with an unsupported JDK. Report this error to the EclipseLink open source project.
java.lang.ArrayIndexOutOfBoundsException: Index 8 out of bounds for length 0
[EL Info]: transaction: 2022-01-26 17:43:20.993--ServerSession(422250493)--property eclipselink.jdbc.user is deprecated, property javax.persistence.jdbc.user should be used instead.
[EL Info]: transaction: 2022-01-26 17:43:20.994--ServerSession(422250493)--property eclipselink.jdbc.driver is deprecated, property javax.persistence.jdbc.driver should be used instead.
[EL Info]: transaction: 2022-01-26 17:43:20.994--ServerSession(422250493)--property eclipselink.jdbc.url is deprecated, property javax.persistence.jdbc.url should be used instead.
[EL Info]: transaction: 2022-01-26 17:43:20.994--ServerSession(422250493)--property eclipselink.jdbc.password is deprecated, property javax.persistence.jdbc.password should be used instead.
[EL Info]: 2022-01-26 17:43:21.094--ServerSession(422250493)--EclipseLink, version: Eclipse Persistence Services - 2.7.7.v20200504-69f2c2b80d
[EL Warning]: metamodel: 2022-01-26 17:43:21.352--The collection of metamodel types is empty. Model classes may not have been found during entity search for Java SE and some Java EE container managed persistence units.  Please verify that your entity classes are referenced in persistence.xml using either <class> elements or a global <exclude-unlisted-classes>false</exclude-unlisted-classes> element
Transaction error: Object: database.model.UserEntity@248df8 is not a known Entity type.
Process finished with exit code 0

您提到的问题也可能是由于使用了一个库,该库可以进行某种代码检查/生成,但还没有准备好使用这个非常年轻的类文件版本。可能eclipselink就是这里的问题。尝试升级到最新版本,如果没有帮助,请返回Java 16,彻底清理并重建您的项目。

例如,请参阅以下注释:UPDATE ECLIPSELINK TO SUPPORT ASM 9.1 for JAVA 17

最新更新