我正在尝试在 IntelliJ 中运行 Spring Boot 应用程序。
但是当我尝试运行时,我收到以下错误消息:
线程“main”中出现异常 java.lang.UnsupportedClassVersionError:myProject 已由更新版本的 Java 运行时(类文件版本 55.0)编译,此版本的 Java 运行时仅识别最高版本 52.0 的类文件
这是我的运行配置下的 JRE 位置:
我尝试在这里安装几个不同的 Java 版本:
这是我当前的系统/环境变量:
环境变量:
JAVA_HOME: C:\Program Files\Java\jdk-11.0.12\bin
Run Code Online (Sandbox Code Playgroud)
系统变量:
Path: C:\Program Files\Java\jdk-11.0.12\bin ....
Run Code Online (Sandbox Code Playgroud)
我试图找到与版本匹配的JRE,但一直找不到。
有人可以告诉我需要进行哪些更改才能在本地成功运行此应用程序吗?
我正在尝试启动为 Spring Boot 项目构建的 jar 文件。首先我做了:
mvn clean package spring-boot:repackage
Run Code Online (Sandbox Code Playgroud)
然后我尝试启动 jar 文件,但出现以下错误:
线程“main”中出现异常 java.lang.UnsupportedClassVersionError:it/sysdata/helios_backend_admin/HeliosAdminBackendApplication 已由更新版本的 Java 运行时(类文件版本 55.0)编译,此版本的 Java 运行时仅识别类文件版本到 52.0 在 java.lang.ClassLoader.defineClass1(本机方法) 在 java.lang.ClassLoader.defineClass(未知来源) 在 java.security.SecureClassLoader.defineClass(未知来源) 在 java.net.URLClassLoader.defineClass(未知来源)在 java.net.URLClassLoader.access$100(未知来源) 在 java.net.URLClassLoader$1.run(未知来源) 在 java.net.URLClassLoader$1.run(未知来源) 在 java.security.AccessController.doPrivileged(本机方法) )在 java.net.URLClassLoader.findClass(未知来源) 在 java.lang.ClassLoader.loadClass(未知来源) 在 org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:93) 在 java.lang.ClassLoader .loadClass(来源不明)在org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:46)在org.springframework.boot.loader.Launcher.launch(Launcher.java:87)在org.springframework.boot .loader.Launcher.launch(Launcher.java:50) 在 org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:51)
我检查过,java版本到处都是11(至少从我所看到的)。这是 pom:
<?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>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.2.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<groupId>it.sysdata</groupId>
<artifactId>helios_backend_admin</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>helios-admin-backend</name>
<packaging>jar</packaging>
<description>Helios Backend …
Run Code Online (Sandbox Code Playgroud) 我尝试构建我的 gradle 项目,但出现以下错误:
1:36 PM Gradle sync failed: Unable to make field private static final java.util.Map java.lang.ProcessEnvironment.theCaseInsensitiveEnvironment accessible: module java.base does not "opens java.lang" to unnamed module @7d417077 (5 s 556 ms)
不,我不知道 gradle,不,我不打算学习它,但我别无选择。提前致谢
我在打开项目时收到此错误
原因:dagger/hilt/android/plugin/HiltGradlePlugin已由更新版本的Java运行时(类文件版本55.0)编译,该版本的Java运行时仅识别最高版本52.0的类文件
我尝试过的是:
在以下任何来源中均未找到插件 [id: 'dagger.hilt.android.plugin']
https://github.com/google/dagger/issues/3495
如何解决Java Runtime(类文件版本55.0),此版本的Java Runtime仅识别类文件版本高达52.0的错误?
在 React Native 应用程序中集成 Firebase 性能库时出现 java.lang.UnsupportedClassVersionError
gradle 构建中出现 java.lang.unsupportedclassversion 错误
应用了 Hilt Android Gradle 插件,但未找到 com.google.dagger:hilt-android-compiler 依赖项
在构建过程中出现错误,如果我使用compileSdkVersion 30
,targetSdkVersion 30
和buildToolsVersion = '30.0.0'
. 该错误不会阻止我的应用程序运行,但我认为它可能会在生产中崩溃。请有人知道如何解决这个问题而不是使用compileSdkVersion 29
?
我在网上查了一下,但从我看到的其他问题来看,我在 Macbook 上看不到我的 Android Studio 4.0 中的步骤。我也尝试更改为sourceCompatibility JavaVersion.VERSION_1_9 targetCompatibility JavaVersion.VERSION_1_9
,但出现了很多错误。
警告:/Users/pc/Library/Android/sdk/platforms/android-30/optional/org.apache.http.legacy.jar(org/apache/http/impl/client/BasicCookieStore.class):主要版本 53 是比 52 更新,这是此编译器支持的最高主要版本。建议升级编译器。
警告:/Users/pc/Library/Android/sdk/platforms/android-30/optional/org.apache.http.legacy.jar(org/apache/http/impl/cookie/BasicClientCookie.class):主要版本 53 是比 52 更新,这是此编译器支持的最高主要版本。建议升级编译器。
警告:/Users/pc/Library/Android/sdk/platforms/android-30/optional/org.apache.http.legacy.jar(org/apache/http/impl/client/BasicCookieStore.class):主要版本 53 是比 52 更新,这是此编译器支持的最高主要版本。建议升级编译器。
警告:/Users/pc/Library/Android/sdk/platforms/android-30/optional/org.apache.http.legacy.jar(org/apache/http/impl/cookie/BasicClientCookie.class):主要版本 53 是比 52 更新,这是此编译器支持的最高主要版本。建议升级编译器。
警告:/Users/pc/Library/Android/sdk/platforms/android-30/optional/org.apache.http.legacy.jar(org/apache/http/impl/client/BasicCookieStore.class):主要版本 53 是比 52 更新,这是此编译器支持的最高主要版本。建议升级编译器。
警告:/Users/pc/Library/Android/sdk/platforms/android-30/optional/org.apache.http.legacy.jar(org/apache/http/impl/cookie/BasicClientCookie.class):主要版本 53 是比 52 更新,这是此编译器支持的最高主要版本。建议升级编译器。
警告:/Users/pc/Library/Android/sdk/build-tools/30.0.0/core-lambda-stubs.jar(java/lang/invoke/LambdaMetafactory.class):主要版本53比52新,最高此编译器支持的主要版本。建议升级编译器。
警告:/Users/pc/Library/Android/sdk/platforms/android-30/optional/org.apache.http.legacy.jar(org/apache/http/cookie/SetCookie.class):主要版本 53 比52,此编译器支持的最高主版本。建议升级编译器。
警告:/Users/pc/Library/Android/sdk/platforms/android-30/optional/org.apache.http.legacy.jar(org/apache/http/cookie/Cookie.class):主要版本 53 比52,此编译器支持的最高主版本。建议升级编译器。
警告:/Users/pc/Library/Android/sdk/platforms/android-30/optional/org.apache.http.legacy.jar(org/apache/http/cookie/ClientCookie.class):主要版本 53 比52,此编译器支持的最高主版本。建议升级编译器。
警告:/Users/pc/Library/Android/sdk/platforms/android-30/optional/org.apache.http.legacy.jar(org/apache/http/client/CookieStore.class):主要版本 53 比52,此编译器支持的最高主版本。建议升级编译器。
注意:某些输入文件使用或覆盖已弃用的 API。注意:使用 -Xlint:deprecation 重新编译以获取详细信息。11条警告
我的 Gradle 文件
apply plugin: 'com.android.application' …
Run Code Online (Sandbox Code Playgroud) 我使用 Springboot 创建了一个 Web 应用程序,现在我将对其进行 dockerize 并将其上传到 docker hub。所以我的Dockerfile
就是,
FROM openjdk:8
EXPOSE 8080
ADD target/spring-boot-web-0.0.1-SNAPSHOT.jar spring-boot-web-0.0.1-SNAPSHOT.jar
ENTRYPOINT ["java","-jar","spring-boot-web-0.0.1-SNAPSHOT.jar"]
Run Code Online (Sandbox Code Playgroud)
在我的目标内部创建之后,.jar
我使用以下命令构建 docker 映像,
docker build -t kubernatesimage
Run Code Online (Sandbox Code Playgroud)
它成功构建了 docker 映像,当我运行时,docker images
我可以看到创建的映像。但在将其上传到 docker hub 之前,我需要运行并检查,以便我正在执行,
docker run -it -p 4000:80 kubernatesimage
Run Code Online (Sandbox Code Playgroud)
这会返回以下异常,
线程“main”中出现异常 java.lang.UnsupportedClassVersionError:guru/springframework/SpringBootWebApplication 已由较新版本的 Java 运行时(类文件版本 55.0)编译,此版本的 Java 运行时仅识别最高 52.0 的类文件版本
根据 @Nithin 在这个StackOverflow 问题中的回答,我发现这是由于版本不匹配和 java 版本代码造成的,
49 = Java 5
50 = Java 6
51 = Java 7
52 = Java 8
53 …
Run Code Online (Sandbox Code Playgroud) 当我使用我的搜索功能时,我收到http状态500错误.它声称
错误报告
HTTP状态500 - 内部服务器错误
输入例外报告
消息SearchServlet已由更新版本的Java Runtime(类文件版本53.0)编译,此版本的Java Runtime仅识别最高52.0的类文件版本(无法加载类[SearchServlet])
说明服务器遇到意外情况,无法满足请求.
异常java.lang.UnsupportedClassVersionError:SearchServlet已由更新版本的Java Runtime(类文件版本53.0)编译,此版本的Java Runtime仅识别最高为52.0的类文件版本(无法加载类[SearchServlet]) org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2286)org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:811)org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase. java:1260)org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1119)org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:488)org.apache.catalina.valves.ErrorReportValve. invoke(ErrorReportValve.java:81)org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)org.apache.coyote. HTTP 11.Http11Processor.service(Http11Processor.java:803)org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)org.apache.coyote.AbstractProtocol $ ConnectionHandler.process(AbstractProtocol.java:790)org.apache. tomcat.util.net.NioEndpoint $ SocketProcessor.doRun(NioEndpoint.java:1459)org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source )java.util.concurrent.ThreadPoolExecutor $ Worker.run(Unknown Source)org.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run(TaskThread.java:61)java.lang.Thread.run(Unknown Source)
当我转到我的编译器时,我使用的是编译器合规级别9.我有jre 1.8,我认为这是最新的.当我尝试使用eclipse市场安装java 9时,它告诉我在http://download.eclipse.org/eclipse/updates/none上找不到存储库.
我相信鉴于所有这些我完全是最新的,但我怎么能够在数据库中搜索记录?
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1" <title>Add contact to Phone Book</title>
<h1>Add contact to Phone Book</h1>
</head>
<body>
<form name="submitInfo" method="get" action="AddEntryServlet" First Name: <input type="text" name="firstName" />
<br/>
<br/>
Last Name: <input type="text" name="lastName" />
<br/>
<br/>
Area Code: <input type="number" name="areaCode" …
Run Code Online (Sandbox Code Playgroud)我正在开发一个需要针对JDK 1.6进行构建的项目,但我想针对Java 1.6和1.7进行测试 - 我安装了Java 1.6和1.7 JDK.
我知道我可以为每个人创建一个新的Java平台,但这也会导致项目针对JDK 1.6/1.7进行构建 - 我只希望它针对两者运行.是否有一种简单的方法可以告诉Netbeans使用我的JDK 1.6平台构建,但使用我的Java 1.7 JRE运行.或者即使有一个使用外部JRE来运行项目的选项,我也可以使它工作.
我正在使用 no.nils.wsdl2java 插件,完整的 gradle.build 文件如下所示:
plugins {
id 'org.springframework.boot' version '2.3.4.RELEASE'
id 'io.spring.dependency-management' version '1.0.12.RELEASE'
id 'java'
id "no.nils.wsdl2java" version "0.10"
}
group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'
configurations {
jaxb
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-web'
compileOnly 'org.projectlombok:lombok'
runtimeOnly 'com.oracle.database.jdbc:ojdbc8'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
implementation group: 'com.oracle.ojdbc', name: 'orai18n', version: '19.3.0.0'
implementation 'org.springframework.boot:spring-boot-starter-security'
implementation 'com.google.code.gson:gson:2.8.5'
}
tasks.named('test') {
useJUnitPlatform()
}
wsdl2java {
generatedWsdlDir = file("build/generated/wsdl/Service")
wsdlsToGenerate …
Run Code Online (Sandbox Code Playgroud)