簡體   English   中英

萊寧根 2 和 java 7

[英]Leiningen 2 with java 7

我嘗試安裝 leiningen ( 2.XX ),我注意到它在執行時拋出錯誤(例如 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.XX,我沒有嘗試 1.XX 版本)也降級 Ubuntu。不幸的是我無法更改 java 版本,因為這是項目要求。

Clojure 至少需要 Java 8 :

Clojure 依賴於 Java,所有 Clojure 代碼都編譯為 Java 8 兼容字節碼(Java 的較新版本也可以加載它)。

  • 最小運行時依賴性:Java 8

Java 7 已經十多年了。 要使用現代語言,您需要不古老的工具。 如果您的項目要求是同時使用 Clojure 和 Java 7,那么傳遞性要求您的項目將失敗。

Clojure 自版本 1.10起,Java8 最低。

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 也會終止支持......

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM