доступ к clojure с помощью классов Java - PullRequest
1 голос
/ 05 октября 2011

Здравствуйте, у меня есть метод main в классе Java, и я хотел бы получить доступ и запустить мои функции clojure из моих классов Java, это возможно, верно?

Помогите пожалуйста

Ответы [ 4 ]

4 голосов
/ 05 октября 2011

Если вы просто хотите вызвать функцию, которую вы определили в скрипте Clojure, следующий код может помочь вам выполнить работу:

test.clj:

(ns test)
(defn hello [name]
  (println (str "Hi " name "!")))

TestRun.java:

import clojure.lang.RT;
public class TestRun {
    public static void main(String[] args) throws Exception {
        RT.loadResourceScript("test.clj");
        // var(namespace, function name).invoke(parameters..)
        RT.var("test", "hello").invoke("Daisy Duck");
    }
}

Вывод:

Hi Daisy Duck!

Убедитесь, что у вас есть банка Clojure на вашем* 1018 классам *

2 голосов
/ 05 октября 2011

см. Принятый ответ на этот вопрос: Вызывая clojure из java

короче говоря, вы добавляете способы, которые вы хотите выставить в свое пространство имен:

(ns com.domain.tiny
  (:gen-class
    :name com.domain.tiny
    :methods [ [binomial [int int] double]]))

затем напишите функции.скомпилируйте ваш файл класса с помощью maven / leiningen

и затем вызовите их из java:

System.out.println("(binomial 5 3): " + tiny.binomial(5, 3));

Это всего лишь отрывок.посмотрите как оригинальный вопрос.

2 голосов
/ 05 октября 2011

У вас есть код Clojure, скомпилированный и упакованный в банку? У вас есть баночка в вашем классе? Если это так, вы сможете использовать классы в банке, как если бы они были написаны на Java.

0 голосов
/ 05 октября 2011

Проверьте API сценариев Java для вызова функций в файлах сценариев: http://download.oracle.com/javase/6/docs/technotes/guides/scripting/programmer_guide/index.html

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