जैसा कि पहले ही कहा गया है, -cp केवल कमांड लाइन में jvm बताने के लिए है कि मुख्य थ्रेड के लिए किस क्लास का उपयोग करना है और कहां यह पुस्तकालयों को ढूंढ सकता है (क्लासपाथ को परिभाषित करें)। Injar यह उम्मीद करता है कि जार फ़ाइल मेनिफ़ेस्ट में क्लास-पाथ और मेन-क्लास को परिभाषित किया जाए। तो अन्य कमांड लाइन में चीजों को परिभाषित करने के लिए है, जबकि अन्य उन्हें जार प्रकट के अंदर ढूंढते हैं। प्रदर्शन में कोई अंतर नहीं है। आप उन्हें एक ही समय में उपयोग नहीं कर सकते हैं, -जर -cp को ओवरराइड करेगा।
यद्यपि, भले ही आप -cp का उपयोग करते हैं, फिर भी यह प्रकट फ़ाइल की जाँच करेगा। तो आप कुछ क्लास-पाथ को मैनिफ़ेस्ट में और कुछ कमांड लाइन में परिभाषित कर सकते हैं। यह विशेष रूप से तब उपयोगी होता है जब आपके पास कुछ तृतीय पक्ष जार पर निर्भरता होती है, जिसे आप अपने निर्माण के साथ प्रदान नहीं कर सकते हैं या प्रदान नहीं करना चाहते हैं (उम्मीद है कि यह पहले से ही सिस्टम में पाया जा सकता है जहां इसे उदाहरण के लिए स्थापित किया जाना है)। तो आप इसे बाहरी जार प्रदान करने के लिए उपयोग कर सकते हैं। यह स्थान सिस्टम के बीच भिन्न हो सकता है या इसका अलग-अलग सिस्टम पर एक अलग संस्करण भी हो सकता है (लेकिन एक ही इंटरफेस हो)। इस तरह से आप ऐप को दूसरे वर्जन के साथ बना सकते हैं और वास्तविक 3 पार्टी डिपेंडेंसी को अलग-अलग सिस्टम पर रन करते समय कमांड लाइन पर क्लास-पाथ में जोड़ सकते हैं।