LoginSignup
5
6

More than 5 years have passed since last update.

JavaからClojureを呼ぶ

Posted at

ごく簡単なことですが、今日の学びも兼ねて書きます。

githubにサンプルコードをあげておきました。

pom.xmlの設定

pom.xml
<plugin>
    <groupId>com.theoryinpractise</groupId>
    <artifactId>clojure-maven-plugin</artifactId>
    <version>1.7.1</version>
</plugin>

を入れる。これでclojureのソースコードをMavenから実行できる。Goalはたとえばclojure:runclojure:compileなどがある。詳細はclojure-maven-pluginのgithub参照。

これに加えて

pom.xml
<configuration>
    <sourceDirectories>
        <sourceDirectory>src/main/clojure</sourceDirectory>
    </sourceDirectories>
</configuration>

を指定すればClojureのソースコードの配置を指定できるし、

pom.xml
<execution>
    <id>compile</id>
    <phase>compile</phase>
    <goals>
        <goal>compile</goal>
    </goals>
</execution>

で、Compileフェーズに勝手に実行してくれるようになる。

Clojureを書く

HelloClojure.clj
;src/main/clojure/HelloClojure.clj
(ns HelloClojure)
(defn hello
  "My first main"
  []
  (println "Hello from Clojure!"))

Javaから呼ぶ

App.java
public static void main( String[] args ) {
    // Hello from Java.
    System.out.println( "Hello from Java!" );

    // Hello from clojure.
    Clojure.var("clojure.core/require").invoke(Clojure.read("HelloClojure"));
    IFn func = Clojure.var("HelloClojure", "hello");
    func.invoke();
}

これで、Clojureで書いたコードをJavaから呼べます。

参考資料

5
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
6