मैं एक प्रोजेक्ट पर काम कर रहा हूं और एक आवश्यकता यह है कि मुख्य विधि के लिए दूसरा तर्क '/' (लिनक्स के लिए) से शुरू होता है, इसे इसे एक पूर्ण पथ (समस्या नहीं) के रूप में माना जाना चाहिए। , लेकिन अगर यह '/' से शुरू नहीं होता है, तो इसे कक्षा के वर्तमान कार्य पथ को प्राप्त करना चाहिए और इसे दिए गए तर्क में शामिल करना चाहिए।पैकेज सहित वर्तमान वर्ग का नाम
मैं कई मायनों में वर्ग के नाम मिलता है: .. System.getProperty("java.class.path")
, new File(".")
और getCanonicalPath()
, और इतने पर
समस्या यह है, यह सिर्फ मेरे निर्देशिका जिसमें संकुल जमा हो जाती है देता है - यानी कि मेरे पास ".../project/this/is/package/name" में संग्रहीत एक वर्ग, यह केवल मुझे "/ project /" देगा और पैकेज नाम को अनदेखा करेगा जहां वास्तविक .class फ़ाइलें हैं।
कोई सुझाव?
संपादित करें: यहाँ विवरण, व्यायाम वर्णन से लिया है
sourcedir हो सकता है या तो निरपेक्ष (के साथ शुरू "/") या जहाँ हम से
sourcedir कार्यक्रम चलाने के लिए रिश्तेदार मुख्य विधि के लिए एक दिया तर्क है। मैं उस पथ को कैसे ढूंढ सकता हूं?
का उपयोग क्या होगा अगर कोड एक जार में पैक (या अन्य प्रकार की तरह आप यह सोचते हैं कर रहे हैं एक फ़ोल्डर/फ़ाइल संरचना में नहीं है) है आप क्या करेंगे? यह एक खतरनाक धारणा है; यह एक छोटे प्रयोग, कक्षा असाइनमेंट, या अन्य डिस्पोजेबल स्थिति के लिए ठीक काम कर सकता है, लेकिन कृपया उत्पादन-गुणवत्ता कोड के लिए उस धारणा को बनाने की आदत में न आएं। –
कक्षा फ़ाइल के पथ को खोजने में कोई समझ नहीं है।इसके अलावा व्यायाम विवरण में यह उल्लेख नहीं किया गया है कि यदि आप इसे सावधानीपूर्वक पढ़ते हैं (* जहां से हम प्रोग्राम चलाते हैं * का अर्थ है वर्तमान मार्ग से प्रोग्राम जिसे उपयोगकर्ता द्वारा बुलाया जाता है)। –
शायद आप आवश्यकता को बेहतर ढंग से समझने में मेरी मदद कर सकते हैं? मुझे तर्क को '/' (विवरण में उल्लिखित) से शुरू करने की आवश्यकता है। अगर ऐसा होता है, तो इसे पूर्ण रूप से उपयोग करें। जैसा है। लेकिन अगर ऐसा नहीं होता है, तो मुझे इसका इलाज कैसे करना चाहिए? –