Clojurescript: 错误:无法找到或加载主类clojure.main。

10

我按照Clojurescript的快速上手指南进行了安装。

我将git仓库拉到了~/clojurescript

我设置了CLOJURESCRIPT_HOME~/clojurescript,并将clojurescript/bin添加到系统路径中。

当我尝试使用cljsc命令时,出现以下错误:

Could not find or load main class clojure.main

我该如何解决这个问题?


要运行ClojureScript编译器,您需要安装Clojure。 - Rodrigo Taboada
我已经通过lein安装了Clojure。Clojure运行良好。 - Asur
好的。尝试创建一个基于ClojureScript模板的项目。lein-mies是一个最小化的ClojureScript项目模板,而chestnut则使用了Om,并拥有相当稳定的浏览器REPL体验。我认为这个快速入门指南是针对那些打算开发ClojureScript本身而不是用ClojureScript进行应用程序开发的人们。 - Rodrigo Taboada
2
我刚遇到了类似的问题。我以为我已经下载了独立的jar包(这是快速入门指南的第一步),但实际上并没有。正确的文件大小应该是19M,而我的文件只有387字节。在正确地下载了jar包之后,一切都正常了。 - l3dx
1
完全同意I3dx的观点,独立的ClojureScript(19兆字节)包含了Clojure。 - Zhe Hu
5个回答

3

好的,5年后回来了。

当我们从没有deps.edncljs.jar文件的目录或路径下运行clj --main cljs.main --compile hello-world.core --repl时,会出现此错误。

考虑到在https://clojurescript.org/guides/quick-start中的目录结构,

hello-world  #### Run that command in this directory
├─ src   
│  └─ hello_world
│     └─ core.cljs 
├─ cljs.jar 
└─ deps.edn 

即。
$ cd hello-world
$ clj --main cljs.main --compile hello-world.core --repl

1
我今天正在学习这个教程。
我在这里查找了这个错误。独立jar的版本是正确的。问题是由core.cljs文件中的“打字错误”引起的。字符串“Hello world!”不是在双引号中。最初,该字符串在单引号中并包含逗号。
我遇到的另一个问题是让java命令运行起来很困难。我正在使用Cygwin64终端。
Cygwin64终端的正确命令是:
$ java -cp "cljs.jar;src" clojure.main build.clj

1
在我的情况下,我错误地输入了Windows命令,该命令中包含",请确保您的根文件夹中有cljs.jarjava -cp cljs.jar:src clojure.main build.clj 希望有一天它能帮助到某人。 :)

0

确保类路径中的JAR文件存在:

java -cp target/missing-file.jar clojure.main your.namespace

会混淆地抛出无法找到或加载主类clojure.main


0
如果您使用Leiningen创建了项目,则您的项目CLI应该类似于这样。

(defproject clojuredemo "0.1.0-SNAPSHOT"
  :description "FIXME: write description"
  :url "http://example.com/FIXME"
  :license {:name "Eclipse Public License"
            :url "http://www.eclipse.org/legal/epl-v10.html"}
  :dependencies [[org.clojure/clojure "1.6.0"]]
  )


在 :dependencies 后面添加以下行:
 :jar-name "<project-name>.jar"
 :jar-path "/target/<project-name>.jar"

注意:您需要将项目名称替换为您的项目

之后运行以下命令


lein jar


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接