如何在只安装Java 8的情况下执行Java 11 jar



我正试图在服务器上执行一个jar,如下所示:java -jar file.jar但我得到以下错误:

A JNI error has occurred, please check your installation and try again 
... 
Class has been compiled by a more recent version of the Java Environment (class file version 55.0), 
this version of the Java Runtime only recognizes class file versions up to 52.0.

我知道这似乎与我的jar文件使用Java 11有关,而服务器只安装了Java 8。我不能像人们在处理这个问题的其他帖子中建议的那样安装Java11,因为我在一个我不是超级用户的服务器上执行。我还想避免用Java8重新编程我的整个项目。

有没有办法让我执行我的jar文件?

如果您可以访问file.jar的源代码,您可以尝试从中创建一个用于java8的jar。如果失败,则使用一些较新的功能。你可以浏览代码并手动降级。

另一种选择是在本地安装java(不需要超级用户权限(。

如前所述,存在多个解决方案。我发现最简单的是以下两种解决方案:

  • 要求服务器的超级用户安装Java 11
  • 从下载jdk-11.0.11_linux-x64_bin.tar.gzhttps://www.oracle.com/java/technologies/javase-jdk11-downloads.html,可以用scp jdk-11.0.11_linux-x64_bin.tar.gz serverName:.复制到服务器上用服务器上的tar xvzf jdk-11.0.11_linux-x64_bin.tar.gz解包,然后用jdk-11.0.11_linux-x64_bin.bin.java -jar file.jar执行您的jar文件

我最终要求超级用户安装Java 11,他们告诉我它已经安装在someFolder/java11/bin/java上了,所以我最终使用了someFolder/java11/bin/java -jar file.jar

相关内容

最新更新