यदि आपके वर्गपथ में जार है, और आप इसके मुख्य वर्ग को जानते हैं, तो आप मुख्य वर्ग को आमंत्रित कर सकते हैं। उदाहरण के लिए DITA-OT का उपयोग करना:
import org.dita.dost.invoker.CommandLineInvoker;
....
CommandLineInvoker.main('-f', 'html5', '-i', 'samples/sequence.ditamap', '-o', 'test')
ध्यान दें यह अधीनस्थ जार को आपके स्पेस के साथ मेमोरी स्पेस और एक क्लासपाथ बनाएगा, जो हस्तक्षेप का कारण बन सकता है। यदि आप उस सामान को प्रदूषित नहीं करना चाहते हैं, तो आपके पास अन्य विकल्प हैं, जैसा कि ऊपर बताया गया है - अर्थात्:
- इसमें जार के साथ एक नया ClassLoader बनाएं। यह अधिक सुरक्षित है; आप नए जार के ज्ञान को कम से कम एक कोर क्लास लोडर से अलग कर सकते हैं यदि आप ज्ञान के साथ चीजों को आर्किटेक्ट करते हैं जो आप विदेशी जार का उपयोग कर रहे हैं। यह है कि हम अपनी दुकान में हमारे प्लगइन्स सिस्टम के लिए क्या करते हैं; मुख्य आवेदन एक क्लास शेल्डर फैक्ट्री, एपीआई की एक प्रति के साथ एक छोटा सा खोल है, और ज्ञान है कि असली एप्लिकेशन पहला प्लगइन है जिसके लिए इसे एक क्लासऑलडर बनाना चाहिए। प्लगइन्स जार की एक जोड़ी है - इंटरफ़ेस और कार्यान्वयन - जो एक साथ ज़िप किए गए हैं। क्लास-प्लेयर्स सभी इंटरफेस साझा करते हैं, जबकि प्रत्येक क्लास-प्लेसर को केवल अपने स्वयं के कार्यान्वयन का ज्ञान होता है। स्टैक थोड़ा जटिल है, लेकिन यह सभी परीक्षणों को पारित करता है और खूबसूरती से काम करता है।
- उपयोग
Runtime.getRuntime.exec(...)
(जो पूरी तरह से जार को अलग करता है, लेकिन सामान्य है "एप्लिकेशन ढूंढें", "अपने तारों को सही से बचाएं", "प्लेटफ़ॉर्म-विशिष्ट डब्ल्यूटीएफ", और "ओएमजी सिस्टम थ्रेड्स" सिस्टम कमांड चलाने के नुकसान)।