为什么我的java运行时已经过时了?我该怎么修



我是一个编程初学者,我开始编写我的第一个真正的程序,只是一个简单的数学游戏。现在我正在尝试将代码获取到一个exe文件中。我使用eclipse最新版本进行编码,并使用Launch4jv.3.14提取exe。文件我的java版本是:

java版本";1.8.0_281";

Java(TM(SE运行时环境(版本1.8.0_281-b09(

Java HotSpot(TM(64位服务器虚拟机(版本25.281-b09,混合模式(

如果我试图打开最终的exe文件,什么都不会发生,如果我试图在Launch4j中运行该文件,我会在日志中得到以下错误

错误:加载主类启动时发生LinkageErrorjava.lang.UnsupportedClassVersionError:start是由最新版本的java Runtime(类文件版本59.0(编译的,此版本的java Run只识别57.0 以下的类文件版本

我该怎么办?我需要帮助。

继续使用早期版本的java编译代码。此外,您还可以在最新的java版本中运行代码。

您可以通过命令行移动较新的JDK。

  • 下载Java JDK的新版本
  • 转到JAVA_HOME环境变量并使用新JDK设置PATH

错误消息表示JRE无法加载类文件(或字节码(版本为59.0的类。这个版本是在Java15中引入的,所以我建议您使用它来运行您的应用程序。

以下是字节码版本及其相应Java版本的概述。

为了更详细地描述这个问题,问题是您试图运行一个由比运行时更新的Java版本编译的应用程序。

实际上,您可以通过另一种方式来解决它,即在JDK的较低版本中编译应用程序,但这需要您能够访问源代码。更新运行时通常更容易。

编辑

正如Johannes Kuhn所建议的,Java 15已经达到了EOL,您应该使用Java 16作为当前版本,并尽快切换到Java 17,因为这将是下一个LTS(长期支持(版本。

最新更新