Für eine Klasse muss ich etwas JVM-Code schreiben, und ich hoffe, Clojure zu verwenden. Ich habe es mit dem unteren Teil des Software-Stacks arbeiten lassen, aber ich kann es nicht schaffen, dass es zwischen der GUI-Ebene, die oben und unten sitzt, funktioniert. Mein Hauptproblem ist, dass die Java-GUI meine Clojure-Dateien erkennt. Ich möchte Leiningen dafür verwenden, aber die Java-Kompilierungslösung scheint diese Interoperation nicht zu berücksichtigen. Die Antwort here scheint genau das zu sein, was ich brauche. Ich verstehe nicht, wo man den Code und so (nur nicht genug Details) setzen. Hat jemand irgendwelche Tipps?Sandwich Clojure zwischen Java mit Leiningen
Ich habe versucht, eine plugin, aber es scheint nicht zu funktionieren. Ich weiß, dass mein Fall definitiv am Rande von Problemen liegt, aber eine Lösung würde die Verwendung von Clojure in einem Klassenzimmer viel einfacher machen.
Danke!
WEITERE DETAILS:
ich nicht viel Glück mit der Verwendung einer kompilierten Clojure Glas hatte. Ich muss eine (ugh) Stateful Clojure-Klasse erstellen (d. H. Die Methoden können nicht statisch sein). Der Code für meine Klasse (src/final_project/MyLinkLayer.clj) sieht aus wie
(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)))
Mein 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])
Die Klasse kompiliert ("lein Kompilierung") ist in Ordnung in „target/classes/final_project/", aber die Methoden werden nicht angezeigt. Ich kann die Klasse über jar laden (mit Maven im oberen Java-Teil meiner Projekt-Imports des Pakets gut genug arbeiten). Ich habe sogar die .class-Datei mit Eclipse überprüft, und die einzigen generierten Methoden sind die von Object. Irgendwelche Gedanken? Auch wenn ich tatsächlich zum "stateful" Teil meiner Clojure Klasse komme, hat irgendjemand irgendwelche Ideen? Danke im Voraus.
Sie tatsächlich lassen Sie Clojure im Unterricht verwenden? Verdammt, hier drüben bestehen sie immer auf Java (naja, um fair zu sein, mittlerweile gibt es so viele JVM-Sprachen, dass man einer Klasse nicht wirklich erlauben kann, sie alle zu benutzen, ohne in eine rohe Unordnung zu geraten). – Cubic
Ja. Es ist ziemlich aufregend, aber da es für meinen Professor so ein Risiko und ein Experiment ist, muss ich es im Grunde einfach aussehen lassen, wenn jemand anderes die Chance hat, es zu benutzen. Deshalb zögere ich, die Maven-Lösung unten zu übernehmen. Leiningen ist viel "schöner". – kwenholz