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

IntelliJ+Cursive插件运行Clojure REPL配置故障求助

问题梳理

环境信息

  • Clojure版本:1.12.0.1488
  • IDE及插件:IntelliJ 2024.3 + Cursive 2025.1.1-343
  • JDK:OpenJDK 24
  • 系统:VoidLinux(内核6.12.28_1)
  • 终端:nushell 0.103.0、kitty 0.41.0

核心问题

  1. IDE配置REPL运行参数-M:rebel -m hi时,报错“找不到或无法加载主类clojure.main”
  2. 终端执行clojure -M:rebel -m hi提示“未知选项-m”,但clojure -M -m hi可正常运行
  3. 已通过在deps.edn添加:paths ["src"]解决Cursive无法识别ns/defn等关键字的问题,但REPL故障未解决
解决方案

1. 修正rebel-readline的deps.edn配置

rebel-readline的别名需要明确指定主类为rebel-readline.main,而非默认的clojure.main,确保你的deps.edn配置如下:

{:paths ["src"]
 :aliases {:rebel {:extra-deps {com.bhauman/rebel-readline {:mvn/version "0.1.4"}}
                   :main-opts ["-m" "rebel-readline.main"]}}}

2. 调整终端运行命令的参数逻辑

使用rebel-readline时,-m参数不属于clojure命令的顶层选项,正确的终端启动方式有两种:

  • 用rebel的--main参数指定入口类:
    clojure -M:rebel --main hi
    
  • 先启动rebel REPL,再手动加载命名空间:
    clojure -M:rebel
    # 进入REPL后执行
    (require 'hi)
    (in-ns 'hi)
    

3. 修正IntelliJ Cursive的REPL配置

不要直接在REPL参数中叠加-m hi,按以下方式调整:

  • 打开Run/Debug Configurations,选中你的Clojure REPL配置
  • 在“Parameters”栏仅填写-M:rebel
  • 启动REPL后,手动在控制台执行加载命令:
    (require 'hi)
    (in-ns 'hi)
    

如果想启动后自动进入hi命名空间,可修改deps.edn的rebel别名,添加初始化命名空间配置:

{:paths ["src"]
 :aliases {:rebel {:extra-deps {com.bhauman/rebel-readline {:mvn/version "0.1.4"}}
                   :main-opts ["-m" "rebel-readline.main" "--init-ns" "hi"]}}}

此时IDE和终端直接执行-M:rebel即可自动进入hi命名空间。

4. 验证Clojure工具链完整性

执行clojure -Sdescribe查看工具链版本,确认系统中的clojure命令为官方clojure-tools,且版本与Clojure 1.12.0.1488兼容。

内容的提问来源于stack exchange,提问作者Aurélien Plazzotta

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 02:12:09