Как использовать скомпилированный класс Clojure в Eclipse с Против часовой стрелки
Я создал базовый класс Hello World в Eclipse с помощью clojure и против часовой стрелки, и я могу без проблем скомпилировать его с clojure.
(ns ca.ckovacs.test.helloWorld (: Gen-класс)) (defn -основная [Greetee] (println (str "Здравствуйте", greetee "!")))
Я вижу, что это создает три класса в моей папке /classes:
helloWorld__init.class HelloWorld$_main__135.class HelloWorld$loading__6309__auto__133.class
Но почему я не получаю helloWorld.class?
В конце концов я хочу использовать скомпилированный класс Clojure в Eclipse.
Я, должно быть, упускаю что-то очевидное, но читая страницу компиляции на clojure.org, опубликованный пример hello world говорит, что вы можете просто загрузить класс helloWorld, как любой другой класс java.
Благодарю.
2 ответа
Я не знаю, в чем проблема, но я переименовал имя пакета и получил файл helloWorld.class, как и ожидалось.
Я подозреваю, что проблема может быть в том, что у меня было два отдельных исходных пути (один для Java, другой для Clojure), которые совместно использовали одно и то же пространство имен пакета.
Хммм... Так как никто не дал ответа, я постараюсь дать некоторые рекомендации, даже если я не использую Eclipse или Против часовой стрелки.
Если вы хотите обрабатывать свои функции Clojure как статические методы при вызове из Java, вам нужно добавить некоторую информацию в ваш (gen-class)
заявление, в частности :methods
ключевое слово.
Смотрите мой ответ на " Вызов Clojure из Java" несколько дней назад. Он содержит ответ, разработанный для NetBeans и приложения, который может дать некоторые рекомендации по вашей проблеме.
Работа с классами / объектами / наследованием между двумя языками немного сложнее.