Как использовать скомпилированный класс Clojure в Eclipse с Против часовой стрелки - PullRequest
1 голос
/ 07 февраля 2010

Я создал базовый класс hello world в eclipse с clojure и против часовой стрелки, и я могу без проблем скомпилировать его с clojure.

(ns ca.ckovacs.test.helloWorld
    (:gen-class))

(defn -main
  [greetee]
  (println (str "Hello " 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 ]

3 голосов
/ 09 февраля 2010

Я не знаю, в чем проблема, но я переименовал имя пакета и получил файл helloWorld.class, как и ожидалось.

Я подозреваю, что проблема может быть в том, что у меня было два отдельных исходных пути (один для Java, другой для Clojure), которые совместно использовали одно и то же пространство имен пакета.

2 голосов
/ 08 февраля 2010

Хммм ... Поскольку никто не дал ответа, я постараюсь дать некоторые рекомендации, даже если я не использую Eclipse или Против часовой стрелки.

Если вы хотите относиться к своим функциям Clojure как к статическим методам при вызове из Java, вам нужно добавить некоторую информацию в ваш оператор (gen-class), в частности ключевое слово :methods.

См. Мой ответ на " Вызов Clojure из Java " несколько дней назад. Он содержит ответ, разработанный для NetBeans и приложения, который может дать некоторые рекомендации по вашей проблеме.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...