2012-01-29 16 views
38

के लिए फ़ोल्डर सेट करें कमांड लाइन से, मैं जावा क्लासस्पैट विकल्प को एकाधिक जार फ़ाइल वाले एक या अधिक निर्देशिकाओं को इंगित करने के लिए कैसे सेट करूं? क्या पुनरावर्ती निर्देशिका और उप-निर्देशिका समर्थन के लिए वाइल्डकार्ड हैं?क्लासपाथ

(। मेरे जार फ़ाइलों कई उप निर्देशिका में हल कर रहे हैं)

+1

शीर्ष स्तर की निर्देशिका के लिए पथ पर्याप्त होना चाहिए। – kosa

+6

http://stackoverflow.com/questions/219585/setting-multiple-jars-in-java-classpath – Vadzim

उत्तर

54

आप जावा 6 का उपयोग कर रहे या उच्चतर आप इस फार्म के वाइल्डकार्ड का उपयोग कर सकते हैं:

java -classpath ".;c:\mylibs\*;c:\extlibs\*" MyApp 

आप जोड़ना चाहते हैं, तो सभी सबडायरेक्टरियों: lib \ एक \, lib \ b \, lib \ ग \, वहाँ छोड़कर में इस के लिए कोई तंत्र है:

java -classpath ".;c:\lib\a\*;c:\lib\b\*;c:\lib\c\*" MyApp 

lib\*\* या lib\** डब्ल्यू की तरह कुछ भी नहीं है आप जिस तरह की नौकरी करना चाहते हैं उसके लिए ildcard।

+14

की डुबकी यह मेरी राय नहीं है। यह यहां से तथ्य http://docs.oracle.com/javase/7/docs/technotes/tools/windows/classpath.html उद्धरण: 'उपनिर्देशिकाओं को बार-बार खोजा नहीं जाता है। उदाहरण के लिए, foo/* केवल foo में jAR फ़ाइलों को देखता है, foo/bar, foo/baz, आदि में नहीं, – msi

+9

और यदि आप सोच रहे हैं कि पथ क्यों है "।" शुरुआत में, यह सुनिश्चित करना है कि एनवी चर के माध्यम से सिस्टम में सेट मौजूदा वर्ग पथ आदि से अधिक नहीं हैं। –

+6

@ एमएसआई मुझे खेद है, मेरा उद्देश्य आपकी प्रतिक्रिया के लिए धन्यवाद था। – MJM

6

java -classpath ".;C:\MyLibs\a\*;D:\MyLibs\b\*" <your-class-name> 

उपरोक्त आदेश के रूप में आदेश का उपयोग वर्ग TestClass नामित क्रियान्वित करने के लिए केवल एक बार क्लासपाथ बताया पथ सेट हो जाएगा।

आप एक से अधिक कक्षाओं निष्पादित करने के लिए चाहते हैं, तो आप इस

set classpath=".;C:\MyLibs\a\*;D:\MyLibs\b\*" 

इस के बाद का पालन कर सकते तुम सिर्फ चाहते हैं के रूप में आप के रूप में कई कक्षाओं निष्पादित कर सकते हैं बस

java <your-class-name> 

ऊपर टाइप करके कमांड प्रॉम्प्ट बंद करने तक कमांड काम करेगा। लेकिन कमांड प्रॉम्प्ट को बंद करने के बाद, यदि आप कमांड प्रॉम्प्ट को फिर से खोलेंगे और कुछ कक्षाओं को निष्पादित करने का प्रयास करेंगे, तो आपको उपरोक्त दो उल्लिखित तरीकों में से किसी की सहायता से क्लासपाथ को फिर से सेट करना होगा। (एक वर्ग और दूसरे को निष्पादित करने के लिए पहली विधि अधिक वर्ग)

को क्रियान्वित करने के लिए, केवल एक बार classpth सेट इतना है कि यह हर के लिए काम कर सकता था तो करना चाहते हैं तो इस प्रकार

1. Right click on "My Computer" icon 
2. Go to the "properties" 
3. Go to the "Advanced System Settings" or "Advance Settings" 
4. Go to the "Environment Variable" 
5. Create a new variable at the user variable by giving the information as below 
    a. Variable Name-  classpath 
    b. Variable Value- .;C:\program files\jdk 1.6.0\bin;C:\MyLibs\a\';C:\MyLibs\b\* 
6.Apply this and you are done. 

याद रखें इस हर बार काम करेंगे के लिए एक। आपको क्लासपाथ को बार-बार सेट करने की आवश्यकता नहीं है।

नोट: यदि आप कुछ दिन बाद कुछ अन्य libs जोड़ना चाहते हैं, तो "पर्यावरण परिवर्तनीय" के "परिवर्तनीय-मूल्य" के अंत में अर्ध-कोलन जोड़ने के लिए मत भूलना और फिर पथ टाइप करें सेमी-कोलन के बाद आपके नए libs के। चूंकि सेमी-कोलन विभिन्न निर्देशिकाओं के पथ को अलग करता है।

आशा है कि यह आपकी मदद करेगा।

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