對於一個類,我需要編寫一些JVM代碼,並且我希望使用Clojure。我將它與軟件堆棧的底部一起工作,但我無法使它在位於頂部和底部的GUI層之間工作。我的主要問題是讓Java GUI識別我的Clojure文件。我想爲此使用Leiningen,但Java編譯解決方案似乎沒有考慮到這種互操作性。答案here似乎正是我所需要的。我不明白在哪裏放置代碼等等(只是不夠詳細)。有沒有人有任何提示?Java與Leiningen之間的夾層Clojure
我試着製作一個plugin,但它似乎沒有工作。我知道我的情況肯定是在問題的邊緣,但一個解決方案將使在教室使用Clojure更容易。
謝謝!
更多細節:
我沒有多少運氣使用Clojure的編譯罐子。我需要創建一個(呃)有狀態的Clojure類(即方法不能是靜態的)。我的類的代碼中(src/final_project/MyLinkLayer.clj)看起來像
(ns final_project.MyLinkLayer
(:gen-class))
(defn -init[s] (print s))
(defn -send [dest data len] (println data))
(defn -recv [trans] (println trans))
(defn -status [] (println "I am a status!"))
(defn -command [cmd value] (println (str cmd " with value=" value)))
我project.clj是
(defproject final_project "0.1.0-SNAPSHOT"
:description "A simulated MAC layer."
:dependencies [[org.clojure/clojure "1.4.0"]
[local/classFiles "1"]]
:aot [final_project.MyLinkLayer])
類編譯( 「雷音編譯」)細到「目標/班/ final_project /「,但方法不顯示。我可以通過jar來加載這個類(在項目的頂部Java部分使用Maven來導入包工作就足夠了)。我甚至用Eclipse檢查過.class文件,而生成的唯一方法是來自Object的。有什麼想法嗎?另外,一旦我真正到達Clojure課程的「有狀態」部分,有沒有人有任何想法?提前致謝。
他們居然讓你在課堂上使用Clojure?該死的,在這裏,他們始終堅持的Java(井是公平的,現在有這麼多的JVM語言,你真的不能讓一個類來使用所有這些,而不會在一個爛攤子王室)。 – Cubic
是的。這是非常令人興奮的,但因爲它是我的教授這樣的風險和實驗,我基本上要使它看起來容易,如果任何人有過使用它的機會。這是我爲什麼猶豫採用下面的Maven解決方案的一部分。萊寧寧很「好」。 – kwenholz