我的项目包含一些第三方jar文件,这些文件是在不同版本的java中编译的.我的项目是使用旧版本的java,所以我UnsupportedClassVersionError在执行应用程序时得到.有没有其他方法来获取java/jre number[45..51]编译类文件的版本,以便我可以在使用之前检查jar文件.
当我使用我的搜索功能时,我收到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)如果我理解正确,Java 10的二进制形式与Java 9完全相同,那么它不会产生任何问题.
我的假设是否正确?
我试图在WSO2数据服务服务器中创建一个新的数据服务以连接SQL Server 2005.但是,每次我测试连接时,我收到错误消息"驱动程序类com.microsoft.jdbc.sqlserver.SQLServerDriver无法加载".
Data Source Type: RDBMS, Non-XA-DataSource
Database Engine: Microsoft SQL Server
Driver: com.microsoft.jdbc.sqlserver.SQLServerDriver
...
Run Code Online (Sandbox Code Playgroud)
我不相信我的连接字符串或凭据是一个问题,因为它加载驱动程序失败.
我在这个过程中缺少的步骤是什么?
我正在尝试构建 docker 映像,但收到一条错误消息,告诉我 jib-maven-plugin 失败。导致出现不支持的类文件主要版本 61 错误。
起初我认为这与我使用的 java 版本(Java 17)有关。所以我从我的机器上卸载了它并安装了 Java 15,但没有成功。
我试图运行的命令:
./mvnw compile jib:dockerBuild -Djib.to.image=fullstack:v1
Run Code Online (Sandbox Code Playgroud)
我得到的错误响应:
Failed to execute goal com.google.cloud.tools:jib-maven-plugin:2.5.2:dockerBuild (default-cli) on project demo: Execution default-cli of goal com.google.cloud.tools:jib-maven-plugin:2.5.2:dockerBuild failed: Unsupported class file major version 61 -> [Help 1]
Run Code Online (Sandbox Code Playgroud)
我的 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 https://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.4.3</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>15</java.version>
</properties>
<dependencies> …Run Code Online (Sandbox Code Playgroud) Java 类版本可以使用以下命令从类二进制文件中获取javap
javap -verbose Test | grep 'minor\|major'
minor version: 0
major version: 55
Run Code Online (Sandbox Code Playgroud)
是否可以提前知道 JDK 将生成哪个类版本?
java -version不显示它
java -version
openjdk version "11.0.17" 2022-10-18
Run Code Online (Sandbox Code Playgroud)