我正在使用bazel运行Java8项目。
对于flywaydb版本5.1.4,我得到以下异常。
我知道错误说明了什么,但我不想使用Java9。我想坚持使用Java8。这是否意味着我需要降级flywaydb或什么?另外,为什么类加载器始终首先加载java9文件。
java.lang.UnsupportedClassVersionError: module-info已由Java Runtime的最新版本(类文件版本53.0)进行编译,此版本的Java Runtime仅可识别52.0以下的类文件版本

我如何不使用java9来解决这个问题。也许这与bazel有关...当我将Maven与flywaydb版本一起使用时,我没有这个问题

最佳答案

这与您使用的库无关。简而言之:您有一个使用java -9编译的类(因此是53),您尝试在只能处理52版本的环境中运行它。

您在那里也有module-info,这意味着模块化,因此比java-8高。如果错误来自库中的类(例如flywaydb),则只需将其降级为最新的Java-8支持的工件。

10-05 19:36