Как использовать скомпилированный класс 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 и приложения, который может дать некоторые рекомендации по вашей проблеме.

Работа с классами / объектами / наследованием между двумя языками немного сложнее.

Другие вопросы по тегам