2010-12-14 11 views
13

मैं कमांड लाइन से जावा एप्लिकेशन चला रहा हूं। क्या मैं वर्तमान चलने वाली निर्देशिका को किसी अन्य चीज़ पर सेट करने के लिए कमांड लाइन तर्क निर्दिष्ट कर सकता हूं, जहां एप्लिकेशन वास्तव में चल रहा है?क्या आप जावा कमांड लाइन से वर्तमान चलती निर्देशिका सेट कर सकते हैं?

+0

यह सुनिश्चित नहीं है कि यह एक डुप्लिकेट है, लेकिन सहायक हो सकता है http://stackoverflow.com/questions/840190/changing-the-current-working-directory-in-java – khachik

+0

हां, यह सहायक हो सकता है। नई फ़ाइल (पैरेंट, पथ) काम कर सकती है। मुझे इसे आजमाना होगा। मैंने इस सवाल को पोस्ट करने का कारण यह है कि मैं एक डीएलएल पर एक प्रोफाइलर का उपयोग करने की कोशिश कर रहा हूं जो मेरा एप्लिकेशन लोड करता है। चूंकि मुझे अनिवार्य रूप से java.exe प्रोफाइल करना है, इसलिए वर्तमान कार्यशील निर्देशिका मेरे जेडीके फ़ोल्डर में सेट हो जाती है और मेरे एप्लिकेशन में मेरे सापेक्ष पथ फेंकता है। – user538442

+0

आपके प्रोफाइलर को आरंभ निर्देशिका निर्धारित करने का विकल्प होना चाहिए। या हो सकता है कि बीएटी फ़ाइल लिखना और प्रोफाइलर को इसे चलाने के लिए कहें? –

उत्तर

-9

मुझे Java command-line documentation में कोई ऐसा विकल्प दिखाई नहीं देता है।

+0

सेट करता हूं तो आवेदन नहीं चलाया जाएगा, नीचे दिए गए दत्ता की प्रतिक्रिया का संदर्भ लें। – user0000001

0

यदि आप वर्तमान निर्देशिका को बदलना चाहते हैं, तो आपको जेएनआई का उपयोग करना होगा और अपने जावा कोड से मूल एपीआई का आह्वान करना होगा। उदाहरण के लिए, विंडोज के लिए आप SetCurrentDirectory

+0

मैं जेएनआई का उपयोग कर रहा हूं इसलिए यह एक संभावित समाधान हो सकता है। – user538442

+0

यह निश्चित रूप से आपके कोड को पूरी तरह से पोर्टेबल बना देगा। –

3

का प्रयोग करेंगे तो यह सब संभव मैं नहीं बल्कि जावा अनुप्रयोग चलाने के लिए एक स्क्रिप्ट का उपयोग और स्क्रिप्ट में निर्देशिका स्थापित करेगा:

#!/bin/sh 
cd <your dir> 
java <some arguments> 

JNI-समाधान सभी को प्रभावित कर सकता आपके आवेदन में सापेक्ष पथ के प्रकार; उदाहरण के लिए आपने जो क्लासपाथ डाला है, उसके लिए

33

एक JVM तर्क -Duser.dir है जिसका उपयोग JVM के लिए कार्य निर्देशिका सेट करने के लिए किया जा सकता है।

0

मुझे यह SO पोस्ट मिला और इससे मुझे मेरी समस्या का समाधान करने में मदद मिली। हालांकि मैं इंटेलिजे के बारे में कुछ विशिष्ट साझा करना चाहता था जो किसी और को यात्रा कर सकता है।

मैं कहाँ -Duser.dir ध्वज प्रयोग किया जाता है और यह भी कार्य निर्देशिका पाठ क्षेत्र में भर जाता है नीचे एक तस्वीर पोस्ट की है।

"Working Directory" field has lower precedence than the -Duser.dir flag.

इस स्थिति में, कार्य निर्देशिका पर सेट हो जाएगा "द्वितीय ट्री" की बजाय "जारलिंग"।

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