我正在试着解决以下错误:
Exception in thread "main" java.io.FileNotFoundException: Could not locate composer/midi/short_message__init.class or composer/midi/short_message.clj on classpath: , compiling:(events.clj:12:1)
对short-message
的引用位于events.clj
:
(ns composer.ui.events
(:use [seesaw core border chooser])
(:require [composer.midi
[io :as io]
[time :as time]
[player :as player]
[short-message :as short]]))
以下是short-message
中short-message.clj
本身的命名空间声明:
(ns composer.midi.short-message
(:require [composer.algorithm.transform :refer :all]
[composer.algorithm.markov.transform :refer :all]
[composer.midi [io :refer :all] [message :as message]]))
short-message
与composer.midi
中的所有其他文件位于同一目录中,但这似乎是唯一导致问题的文件。实际上,在验证项目中的target
目录之后,这是唯一一个似乎不包含相应类文件的命名空间。我认为这可能是代码的错误,但是如果我尝试在REPL中使用(load-file "src/composer/midi/short-message.clj")
加载文件我没有任何问题。
答案 0 :(得分:1)
您的评论是对的。在命名空间中,命名空间中的破折号对应于文件名中的下划线。所以你的文件名应该是你发现的short_message.clj。