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

运行lein run提示project.clj未指定:main命名空间错误如何解决

报错原因

执行lein run时提示No :main namespace specified in project.clj,是因为Leiningen没有在项目配置文件中找到程序入口声明,不知道要加载哪个命名空间下的-main函数启动程序。你虽然已经在源码中编写了符合规范的入口函数,但没有在project.clj中做对应配置。

修复方法
  • 定位到项目根目录(即你当前执行lein run命令的C:\Users\danny\New folder\cftbat-code路径),找到根目录下的project.clj配置文件
  • 在defproject配置段中添加:main配置项,值为你编写-main函数对应的命名空间clojure-noob.core
    配置完成后的project.clj核心结构参考如下:
    (defproject clojure-noob "0.1.0-SNAPSHOT"
      :description "Clojure for the Brave and True example project"
      :dependencies [[org.clojure/clojure "1.11.1"]]
      ;; 新增以下行声明入口命名空间
      :main clojure-noob.core
      :target-path "target/%s"
      :profiles {:uberjar {:aot :all}})
    
  • 保存配置文件后,回到PowerShell重新执行lein run即可正常运行,正常输出内容为I'm a little teapot!
排错注意

如果修改配置后仍报错,优先检查两个常见问题:

  • 命名空间与文件路径是否匹配:clojure-noob.core命名空间对应的源码文件必须存放在src/clojure_noob/core.clj路径下,注意Clojure命名空间中的横杠-对应文件/文件夹名的下划线_,路径名不要写错
  • 执行命令的位置是否正确:lein run必须在project.clj所在的项目根目录执行,不要进入src等子目录运行命令

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 09:18:18