You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java 7环境下Leiningen 2.X.X执行报错的解决方法咨询

解决Java 7下Leiningen 2.X.X版本的UnsupportedClassVersionError问题

报错原因

Exception in thread "main" java.lang.UnsupportedClassVersionError: clojure/main : Unsupported major.minor version 52.0 这个错误的核心原因是:

  • 版本号52.0对应Java 8,意味着你运行的Clojure类文件是用Java 8编译的,但你的环境是Java 7,两者版本不兼容。
  • Leiningen 2.X.X从2.9.0版本开始,默认依赖的Clojure版本升级到了需要Java 8的版本,所以直接用新版Leiningen在Java 7环境下会触发这个报错。

解决步骤

1. 安装兼容Java 7的Leiningen版本

选择Leiningen 2.8.3版本(这是最后一个官方支持Java 7的稳定版):

  • 下载该版本的lein脚本,替换你当前系统中的lein可执行文件
  • 给脚本添加执行权限:chmod +x lein
  • 确保脚本在系统PATH路径中

2. 强制项目使用兼容Java 7的Clojure版本

即使Leiningen版本兼容,项目如果依赖高版本Clojure(1.9及以上需要Java 8)仍会报错,需修改项目根目录下的project.clj:

  • 在:dependencies中指定Clojure 1.8.0(最后一个支持Java 7的Clojure稳定版):
    :dependencies [[org.clojure/clojure "1.8.0"]]
    
  • 添加Java编译选项,确保代码以Java 7为目标版本:
    :javac-options ["-source" "1.7" "-target" "1.7"]
    

3. 验证配置

执行lein version,如果输出正常且显示Clojure版本为1.8.0,说明配置成功。后续运行项目时,也需要确保项目的其他依赖库均兼容Java 7。

内容的提问来源于stack exchange,提问作者Spiros Vardis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 00:05:15