我尝试安装leiningen (2.X)。X),我注意到它在执行时抛出一个错误(例如lein版本)。我在Ubuntu 20.04上使用java 7。你能给我一些反馈如何解决这个问题吗?错误:
Exception in thread "main" java.lang.UnsupportedClassVersionError: clojure/main : Unsupported major.minor version 52.0
at java.lang.ClassLoader.findBootstrapClass(Native Method)
at java.lang.ClassLoader.findBootstrapClassOrNull(ClassLoader.java:1070)
at java.lang.ClassLoader.loadClass(ClassLoader.java:414)
at java.lang.ClassLoader.loadClass(ClassLoader.java:412)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)
我尝试了不同版本的Leiningen(总是2.X)。X,我没试过1。X版本)也在降级Ubuntu。不幸的是,我不能更改java版本,因为这是一个项目要求。
Clojure since version1.10
Leiningen自2.9使用Clojure 1.10。所以任何版本到2.8.3应该没问题Java7。
确实它工作得很好,我使用例如2.7.1(我选择,因为它是SDKMAN中唯一的<2.9版本):
% java -version
openjdk version "1.7.0_352"
OpenJDK Runtime Environment (Zulu 7.56.0.11-CA-linux64) (build 1.7.0_352-b01)
OpenJDK 64-Bit Server VM (Zulu 7.56.0.11-CA-linux64) (build 24.352-b01, mixed mode)
% lein -version
Leiningen 2.7.1 on Java 1.7.0_352 OpenJDK 64-Bit Server VM
(在Leiningen 2.10中,-version
调用失败,错误与中相同这个问题)
这当然也意味着,你必须坚持使用插件和深度从2018年之前开始。
都说:更新!在某些时候,甚至Azul也会停止支持…
Clojure至少需要Java 8:
Clojure依赖于Java,所有Clojure代码都被编译为Java 8兼容的字节码(新版本的Java也可以加载这个)。
- 最小运行时依赖:Java 8
Java 7已经有十多年的历史了。要使用一门现代语言,你需要一些不古老的工具。如果你的项目需求是同时使用Clojure和Java 7,那么你的项目将会失败。