सिस्टम प्रॉपर्टी का उपयोग करने का एक तरीका System.getProperty("user.dir");यह होगा कि यह आपको "वर्तमान कामकाजी निर्देशिका देगा जब गुण प्रारंभिक थे"। शायद यही आप चाहते हैं। यह पता लगाने के लिए कि javaआदेश कहाँ जारी किया गया था, निर्देशिका में आपके मामले में फाइलों के साथ प्रक्रिया करने के लिए, भले ही वास्तविक .jar फ़ाइल मशीन पर कहीं और रहती हो। वास्तविक .jar फ़ाइल की निर्देशिका होने से अधिकांश मामलों में यह उपयोगी नहीं है।
निम्न वर्तमान निर्देशिका को प्रिंट करेगा जहाँ कमांड को लागू किया गया था, जहाँ .class या .jar फ़ाइल .class फ़ाइल में है।
public class Test
{
public static void main(final String[] args)
{
final String dir = System.getProperty("user.dir");
System.out.println("current dir = " + dir);
}
}
यदि आप /User/me/और आपके .jar फ़ाइल में उपरोक्त कोड है, /opt/some/nested/dir/
तो कमांड java -jar /opt/some/nested/dir/test.jar Testआउटपुट होगा current dir = /User/me।
आपको एक अच्छे ऑब्जेक्ट ओरिएंटेड कमांड लाइन तर्क पार्सर का उपयोग करके एक बोनस लुक के रूप में भी होना चाहिए। मैं JSAP , जावा सिंपल आर्ग्युमेंट पार्सर की अत्यधिक अनुशंसा करता हूं । यह आपको उपयोग करने System.getProperty("user.dir")और वैकल्पिक रूप से व्यवहार को ओवर-राइड करने के लिए किसी और चीज़ में पास करने देगा। एक बहुत अधिक बनाए रखने योग्य समाधान। यह निर्देशिका में पास करना आसान बना देगा, और user.dirयदि कुछ भी पारित नहीं हुआ तो वापस गिर सकता है।