2010-12-01 23 views
5

पाइथन से जावा उत्पन्न करने का सबसे अच्छा तरीका क्या है?पाइथन के साथ जावा उत्पन्न करने का सबसे अच्छा तरीका?

मैं एक सजावट लिखना चाहता हूं जो एक समारोह के जेसन संस्करण को कॉल करने के लिए जावा कोड उत्पन्न करता है (मैं जेसन एपीआई निर्यात करने के लिए मौजूदा सजावटी का उपयोग कर सकता हूं)।

जावा उत्पन्न करने का सबसे अच्छा तरीका क्या है, क्या मुझे यहां एफएसएम जैसी चीजों पर विचार करना चाहिए?

आदर्श रूप से मैं सर्वर के लिए एक बार अपना कोड लिख सकता हूं और विभिन्न भाषाओं (जावा पहले) के साथ इंटरफेस करने के लिए कोड उत्पन्न कर सकता हूं।

संपादित (किसी हटाए गए जवाब पर एक टिप्पणी से खींचा):
जावा कोड, एंड्रॉयड पर चलने वाले की जाएगी, जबकि अजगर कोड एक Django सर्वर में हो जाएगा ... इसके अलावा, मैं स्थिर उत्पन्न करने में सक्षम होना चाहता हूँ जावा कोड, और यह एक एपीआई के हिस्से के रूप में है जो लोग उपयोग कर सकते हैं।

+1

सबसे अच्छा तरीका इस जटिल को उत्पन्न नहीं कर रहा है यदि आप इससे बच सकते हैं। एक संकेत हालांकि: जहां तक ​​मैं जानता हूं, वैसे यह अपेक्षाकृत "सरल" है (सभी अन्य संभावनाओं के विपरीत) एक एएसटी (अमूर्त वाक्यविन्यास पेड़) जैसे कुछ से सही (बहुत पठनीय, लेकिन सही) कोड उत्पन्न करने के लिए - कम से कम अगर आप जानते हैं कि पेड़ प्रारूप (और यह क्या दर्शाता है) अच्छी तरह से। इसका मूल रूप से मतलब है कि जावा कंपाइलर का आधा हिस्सा लागू करना है। – delnan

+0

तो आपका सर्वर कुछ जावा (बाइट?) कोड उत्पन्न करता है जो एंड्रॉइड उपयोगकर्ता कुछ JSON डेटा प्राप्त करने के लिए निष्पादित करेगा? –

+0

जाहिर है, जावा कोड उत्पन्न करने वाला बिट केवल तभी चलाया जाएगा जब हम एपीआई को बदलने का फैसला करते हैं, हर समय नहीं :) –

उत्तर

0

पुन: उपयोग अच्छा है। जटिलता एक कीमत है।

इससे आपको दो या अधिक बार भुगतान करना होगा। एक छलांग लगाने से पहले अपने आरओआई (निवेश पर वापसी) को मापें।

[संपादित करें:]

  1. आप जो यह आसान जावा कार्यों बुला के रूप में गोंद कोड लिखने के लिए कर देगा Jython इस्तेमाल कर सकते हैं।
  2. jythonc पाइथन स्रोत कोड जावा स्रोत कोड में बदलता है तो इसे जावा कंपाइलर को .class फ़ाइलों में बदलने के लिए आमंत्रित करता है।
  3. जैसा कि कहा गया है, आप templating का उपयोग कर सकते हैं। किसी ने उस उद्देश्य के लिए cheetah का उपयोग किया था। हालांकि लिंक अब और उपलब्ध नहीं है।
+1

नेटवर्क प्रोग्रामिंग डीबग करने के लिए एक दुःस्वप्न हो सकता है, यह सब गोंद उत्पन्न करने के लिए बहुत परेशानी होगी। –

+0

@ स्टुअर्ट एक्सॉन: +1 बहुत सच! मैं बिल्कुल विवाद नहीं करता हूं। हमें इसका जज होना है। मैंने कभी देखा है कि लागत वाले लोगों ने गोंद कोड के साथ विशेष रूप से निर्णय लेने के लिए भुगतान किया है। यह वास्तव में इस पर निर्भर करता है कि यहां क्या हासिल किया जा रहा है। गोंद कोड की जटिलता बनाम जेसन एपीआई की जटिलता।मुझे बस एक आंत महसूस हो रहा है कि जेसन एपीआई की जटिलता कम होगी क्योंकि पाइथन के शस्त्रागार में उत्कृष्ट उपकरण हैं। – pyfunc

+0

यह जावा/एंड्रॉइड से कॉल करने के लिए कोड को और अधिक उत्पन्न कर रहा है जिसे मैं अजगर की तरफ से सोच रहा हूं। मैं jythonc की जांच करूंगा ... इस पल के लिए मैं एक जांच चरण में हूं, अगर यह एक मृत अंत की तरह लगता है तो यह बहुत अधिक नुकसान नहीं है। –

1

आप हमेशा जावा कोड बना सकते हैं जैसे वेबपैम HTML बनाते हैं: टेम्पलेट के साथ। सबसे अच्छा विकल्प है, लेकिन निश्चित रूप से एक विकल्प (और काफी btw सरल)

+0

कर सकता था ... मैंने पहले इस तरह कोड बनाया है और यह हमेशा सुंदर नहीं है। –

-1

मेरी सलाह

जरूरी नहीं: तो फिर तुम जावा स्रोत एक नियमित रूप से जावा का उपयोग कर बाईटकोड में संकलित कोड हो सकता है ( Package javax.tools देखें)? जावा कोड के बजाय जावास्क्रिप्ट कोड उत्पन्न करें। एंड्रॉइड WebView का उपयोग कर जावास्क्रिप्ट कोड निष्पादित कर सकता है।

+0

सच है, मुझे इस सेवा के रूप में चलने के बारे में निश्चित नहीं है। –

संबंधित मुद्दे