हाय मुझे जावा क्लास रन टाइम बनाने, संकलित करने और लोड करने की आवश्यकता है। एफटीएल का उपयोग करके मैं जावा स्रोत फाइलें बना रहा हूं, और यदि गतिशील निर्भरता नहीं है तो स्रोत को संकलित करने में सक्षम है।एकाधिक जावा फाइलों को संकलित करने के लिए जावा कंपाइलर एपीआई का उपयोग
एक उदाहरण के साथ विस्तार करने के लिए, मेरे पास दो जावा स्रोत फ़ाइल, एक इंटरफेस और इसकी कार्यान्वयन कक्षा है। मैं के रूप में
String classpath=System.getProperty("java.class.path");
String testpath =classpath+";"+rootPath+"/lib/is_wls_client.jar;"+rootPath+"/rtds_wls_proxyclient.jar;.;";
File javaFile = new File(javaFileName+".java");
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
List<String> optionList = new ArrayList<String>();
optionList.addAll(Arrays.asList("-classpath",testpath));
StandardJavaFileManager sjfm = compiler.getStandardFileManager(null, null, null);
Iterable fileObjects = sjfm.getJavaFileObjects(javaFile);
JavaCompiler.CompilationTask task = compiler.getTask(null, null, null,optionList,null,fileObjects);
task.call();
sjfm.close();
इस प्रकार जावा संकलक एपीआई का उपयोग कर रहा स्थिर वर्ग है जो classpath में पहले से ही कर रहे हैं के लिए वर्ग पथ सेट इंटरफेस को संकलित करने में सक्षम हूँ, लेकिन इस दृष्टिकोण डायनामिक रूप से तैयार वर्गों के लिए काम नहीं करते? कोई भी कस्टम क्लास लोडर ठीक करेगा? मेरे अंतिम कार्यान्वयन वेब/एप्लिकेशन सर्वर
में होगा किसी भी प्रतिक्रिया की सराहना की अत्यधिक जाएगा
सतीश
कक्षा को परिभाषित करने के बाद, आपको इसे हल करने की आवश्यकता है। –