gpt4 book ai didi

clojure - 为什么在启动 clojure repl 时绝对类路径不起作用?

转载 作者:行者123 更新时间:2023-12-04 05:03:06 27 4
gpt4 key购买 nike

当我探索 Clojure 时,一个问题困扰了我很长时间。我尝试通过调用 compile 来生成一个类Clojure 脚本上的 REPL 函数如下:

(ns mylib.DirLister (:gen-class))
(defn -listDir [this path]
(->> path java.io.File. .listFiles (map #(.getName %))))

我将此脚本保存到 e:/temp/clj/src/mylib/DirLister.clj。当我指定 时,以下 session 进行得很顺利相对路径 -cp选项,即类在类路径中成功生成:
e:\temp\clj>java -cp .\src;.\classes;d:/tools/clojure-1.4.0/clojure-1.4.0.jar clojure.main
Clojure 1.4.0
user=> (compile 'mylib.DirLister)
mylib.DirLister
user=>

但是当我使用 绝对路径 ,出现“No such file or directory”错误提示:
e:\>java -cp e:/temp/clj/src;e:/temp/clj/classes;d:/tools/clojure-1.4.0/clojure-1.4.0.jar clojure.main
Clojure 1.4.0
user=> (compile 'mylib.DirLister)
CompilerException java.io.IOException: No such file or directory, compiling:(mylib/DirLister.clj:1)

user=>

怎么来?我的意思是为什么绝对路径不起作用但相对路径起作用。

我知道我可以和莱宁根一起去。但由于我正在学习 Clojure,所以在采用这个功能齐全的工具之前,我想了解其背后的内容。

最佳答案

在我看来,您在命令行上混合了正斜杠和反斜杠。我不确定您正在使用什么 shell 以及这是否会有所作为。但是,带有 e: 的路径通常需要一个反斜杠“\”。也许这会有所帮助,或者至少可以消除一个潜在的问题根源?

您能否尝试更改第二个示例以使用
e:\temp\clj\src;e:\temp\clj\classes;d:\tools\clojure-1.4.0\clojure-1.4.0.jar
看看这是否有帮助?

关于clojure - 为什么在启动 clojure repl 时绝对类路径不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15862272/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com