Ни одно из перечисленных решений не помогло мне.
Вот где у меня возникла проблема:
Я добавил внешний JAR-файл jSoup в путь моего проекта, сначала поместив его в исходную папку с именем «libs», а затем щелкнув правой кнопкой мыши по нему. , Путь сборки -> добавить к пути сборки. Это бросило ошибку преобразования Dalvik. Он сказал, что я «уже включил» класс из этого файла JAR. Я осмотрел каталог проекта и обнаружил, что место, где он «уже включен», на самом деле является каталогом bin
. Я удалил файл JAR из каталога bin
и обновил проект в Eclipse, и ошибка исчезла!
У вас есть несколько вариантов.
Если это просто файл (не в пакете), то в ваших файлах вы можете просто использовать load
. Если бы ваш файл был назван «fun.clj», вы бы просто использовали имя файла без расширения:
(load "fun")
(при условии, что fun.clj
был в вашем пути к классам). Или
(load "files/fun")
, если он находится не в вашем пути к классам, а в каталоге files
.
Или вы можете использовать load-file
и передать ему местоположение вашего файла:
(load-file "./files/fun.clj")
Если вы хотите разместить их в пространстве имён (поместить их в пакет), вы должны поместить макрос ns
в начало вашего файла, а затем снова поместить его в путь к классам. Затем вы можете загрузить его через , используйте
или require
.
Вот документы для описанных мною функций:
Это решило мою проблему, и я рассмотрел здесь бесчисленное множество других проблем, поэтому я хотел бы уточнить.
Самый простой способ в emacs (в Linux) - это сделать что-то вроде этого:
java -cp "lib/*":. clojure.main -e "(do (require 'swank.swank) (swank.swank/start-repl))"
(обратите внимание на "lib / *" :., заданный для -cp
Затем вы можете использовать Mx slime-connect для соединения с
Не знаю, требуется ли это, но я читал, что неплохо использовать одну и ту же версию clojure, clojure-contrib и swank-clojure с обеих сторон.
Вы также можете настроить путь внутри emacs, превратив "." в swank-clojure-classpath.