के साथ जावा के बीच सैंडविच क्लोजर एक कक्षा के लिए, मुझे कुछ जेवीएम कोड लिखना होगा, और मैं क्लोजर का उपयोग करने की उम्मीद कर रहा हूं। मुझे सॉफ़्टवेयर स्टैक के निचले भाग के साथ काम करने के लिए मिला, लेकिन मैं इसे ऊपर और नीचे के हिस्से में बैठे जीयूआई परत के बीच काम करने के लिए प्रबंधित नहीं कर सकता। मेरी मुख्य समस्या जावा क्लूआई को मेरी क्लोजर फाइलों को पहचानने के लिए मिल रही है। मैं इसके लिए लीनिंगेन का उपयोग करना चाहता हूं, लेकिन जावा संकलन समाधान इस बातचीत के लिए जिम्मेदार नहीं लगता है। उत्तर here बिल्कुल वही है जो मुझे चाहिए। मुझे समझ में नहीं आता कि कोड कहां रखा जाए और ऐसा (केवल पर्याप्त विवरण नहीं)। क्या किसी के भी पास कोई भी सुझाव है?लीनिंगेन
मैंने plugin बनाने का प्रयास किया, लेकिन ऐसा लगता है कि यह काम नहीं करता है। मुझे पता है कि मेरा मामला निश्चित रूप से समस्याओं के झुकाव पर है, लेकिन एक समाधान कक्षा सेटिंग में क्लोजर का उपयोग करना अधिक आसान होगा।
धन्यवाद!
अधिक विवरण:
मैं एक संकलित Clojure जार का उपयोग कर के साथ बहुत किस्मत नहीं था। मुझे एक (यूघ) स्टेटफुल क्लोजर क्लास बनाने की ज़रूरत है (यानी विधियां स्थैतिक नहीं हो सकती हैं)। मेरी कक्षा के लिए कोड (src/final_project/MyLinkLayer.clj) लग रहा है मेरे project.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)))
(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])
वर्ग compiles ("lein संकलन") ठीक "लक्ष्य/वर्गों में है/final_project/", लेकिन विधियां दिखाई नहीं देती हैं। मैं जार के माध्यम से कक्षा लोड कर सकता हूं (पैकेज के काम के मेरे प्रोजेक्ट आयात के शीर्ष जावा भाग में मेवेन का उपयोग करके पर्याप्त रूप से पर्याप्त)। मैंने एक्लिप्स के साथ .class फ़ाइल को भी चेक किया, और ऑब्जेक्ट्स से उत्पन्न एकमात्र विधियां हैं। कोई विचार? साथ ही, एक बार जब मैं वास्तव में अपने क्लोजर वर्ग के "राज्यव्यापी" भाग में जाता हूं, तो क्या किसी के पास कोई विचार है? अग्रिम में धन्यवाद।
वे वास्तव में कक्षा में क्लोजर का उपयोग करने देते हैं? अरे, यहां पर वे हमेशा जावा पर जोर देते हैं (अच्छी तरह से निष्पक्ष होने के लिए, अब तक इतनी सारी जेवीएम भाषाएं हैं कि आप वास्तव में कक्षा को शाही गड़बड़ी के बिना उन सभी का उपयोग करने की अनुमति नहीं दे सकते हैं)। – Cubic
हाँ। यह बहुत रोमांचक है, लेकिन चूंकि यह मेरे प्रोफेसर के लिए इतना जोखिम और प्रयोग है, इसलिए मुझे मूल रूप से इसे आसान दिखाना पड़ता है अगर किसी और को इसका उपयोग करने का मौका मिलता है। यही कारण है कि मैं नीचे मेवेन समाधान को अपनाने में संकोच क्यों करता हूं। Leiningen बहुत "अच्छा" है। – kwenholz