मैं जेडीटी का उपयोग अपने जावा वर्गों को संकलित करने के। बैचकंपेलर एक स्ट्रिंग देता है लेकिन मुझे अपने कॉलम और पंक्ति की जानकारी के साथ समस्याओं/त्रुटियों की एक सरणी की आवश्यकता होती है। compiler.compile (यूनिट); त्रुटि को अपने प्रिंटराइटर में प्रिंट करता है, compiler.resolve (इकाई) ठीक वही करता है जो मैं चाहता हूं लेकिन यह केवल एक जावा फ़ाइल संकलित कर सकता है।मैं जेडीटी कंपाइलर प्रोग्रामेटिक रूप से कैसे उपयोग कर सकता हूं?
मैं इस तरह से एक संकलक वस्तु बनाया:
Compiler compiler = new Compiler(env, DefaultErrorHandlingPolicies.exitAfterAllProblems(), new CompilerOptions(), requestor, new DefaultProblemFactory());
और CompilationUnits कि संकलक करने के लिए फ़ाइल नाम और फ़ाइल सामग्री शामिल पैदा करते हैं।
CompilationUnit[] units = project.toCompilationUnit();
AFAIK, वहाँ 2 तरीके संकलित करने के लिए कर रहे हैं, उनमें से एक (यूनिट) विधि है कि इसके PrintWriter को शून्य और प्रिंट त्रुटियों और समस्याओं रिटर्न संकलन है, क्योंकि यह स्तंभ जानकारी वापस नहीं करता है यह मेरे लिए उपयोगी नहीं है है । दूसरा तरीका संकल्प (इकाई) विधि है लेकिन यह केवल एक संकलन के साथ काम कर सकता है।
compiler.resolve(units[index], true, true, true);
क्या कोई जानता है कि मैं एकाधिक फ़ाइलों को संकलित करने के लिए प्रोग्रामेटिक रूप से जेडीटी कंपाइलर का उपयोग कैसे कर सकता हूं?
वहाँ CompilationUnits के माध्यम से पाशन और 'resolve' बुला में किसी भी समस्या है। –
@UnniKris यह काम करता है लेकिन जैसा कि मैंने कहा कि संकल्प केवल एक संकलन यूनीट पैरामीटर लेता है। लूपिंग हालांकि CompilationUnits क्योंकि मैं एक परियोजना कई जावा फ़ाइलें एक दूसरे पर निर्भर है और एक CompilationUnit अन्य CompilationUnits बारे में कोई जानकारी नहीं है शामिल है कि संकलित करने के लिए कोशिश कर रहा हूँ [] समस्या का समाधान नहीं है। –