5

मैं संकलन में एक .java फ़ाइल कैसे लोड कर सकता हूं? उदाहरण के लिए, मान लें कि मेरे पास वर्तमान प्रोजेक्ट में एजेवा फ़ाइल है। मैं इसे एक संकलन यूनिट में लोड करना चाहता हूं और फिर उसे एएसटीपीसर को पास करना चाहता हूं। यह सिर्फ एक सादे पाठ के रूप में लोड करने का विकल्प नहीं है क्योंकि ऐसा लगता है कि उस मामले में मुझे एएसटी में बाध्यकारी जानकारी नहीं मिलेगी।ग्रहण .java फ़ाइल से संकलन Unnit बनाएँ

उत्तर

9

आप jdt और eclipse core पुस्तकालयों का उपयोग करके परियोजनाओं को लोड कर सकते हैं।

निम्न कोड का उपयोग करके आप कार्यक्षेत्र में सभी परियोजनाओं को लोड कर सकते हैं।

IWorkspace workspace = ResourcesPlugin.getWorkspace(); 
IWorkspaceRoot root = workspace.getRoot(); 
// Get all projects in the workspace 
IProject[] projects = root.getProjects(); 

तो फिर तुम संकुल और बदले में जावा फ़ाइलें मिल सकती है।

IPackageFragment[] packages = JavaCore.create(project).getPackageFragments(); 
IPackageFragment mypackage = packages.get(0); // implement your own logic to select package 
ICompilationUnit unit = mypackage.getCompilationUnits(); 

तो फिर तुम CompilationUnit

ASTParser parser = ASTParser.newParser(AST.JLS3); 
parser.setKind(ASTParser.K_COMPILATION_UNIT); 
parser.setSource(unit); 
parser.setResolveBindings(true); 
CompilationUnit cUnit = parser.createAST(null); 

यह CompilationUnit वस्तु ASTParser को पारित किया जा सकता प्राप्त करने के लिए इस ICompilationUnit वस्तु का उपयोग कर सकते हैं।

+0

यह केवल ग्रहण परियोजनाओं के लिए काम करेगा? यानी, यह जावा परियोजनाओं के लिए काम नहीं करेगा? – bellpeace

+0

आप जार फाइलों के जरिए जावा परियोजनाओं में जेडीटी का उपयोग नहीं कर सकते हैं। जेडीटी का उपयोग करने के लिए, आपको प्रोग्राम को प्लग-इन (या कम से कम, एक ओएसजीआई-सक्षम एप्लिकेशन) के रूप में चलाने की आवश्यकता है। –

+0

ठीक है, तो मैं केवल ग्रहण परियोजनाओं के लिए इस दृष्टिकोण से संकलन के लिए .java फ़ाइल लोड कर सकता हूं। एफवाईआई, सेटसोर्स (char []) और सेट पर्यावरण संसाधनों का उपयोग करके ग्रहण परियोजनाओं के बाहर जेडीटी का उपयोग करना संभव है। (संस्करण 3.6 से) – bellpeace

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