मेरे पास एक जावा डेस्कटॉप एप्लिकेशन है जो मैंने लिखा है। निष्पादन के दौरान मैं सिस्टम में परिभाषित डिफ़ॉल्ट पथ नाम पर फ़ोल्डर और फ़ाइलों को बना देता हूं।उपयोगकर्ता काम कर रहे निर्देशिका: XP बनाम Vista
Java.io.files स्पष्ट रूप से कहा गया है: By default the classes in the java.io package always resolve relative pathnames against the current user directory. This directory is named by the system property user.dir, and is typically the directory in which the Java virtual machine was invoked.
इसके अलावा, मैं IzPack उपयोग कर रहा हूँ स्थापना और शॉर्टकट निर्माण कर सकें।
जब मैं अपने एक्सपी कंप्यूटर पर अपना एप्लिकेशन चला रहा हूं, इंस्टॉलेशन के बाद मुझे डेस्कटॉप शॉर्टकट मिलता है, और उल्लिखित फाइलें और फ़ोल्डर्स सृजन उस स्थान पर हैं जहां इज़पैक ने जार स्थापित किया था। जो अपेक्षित व्यवहार है।
लेकिन जब मैं Vista मशीन पर इसका परीक्षण करता हूं, फ़ोल्डर और फ़ोल्डर्स डेस्कटॉप पर बनाए जाते हैं! हालांकि जार सही स्थान पर है (सी: \ प्रोग्राम फाइल .. आदि)।
मैं उन फ़ाइलों को जार में उसी फ़ोल्डर में बनाना चाहता हूं, और निश्चित रूप से डेस्कटॉप पर नहीं।
क्या कोई मुझे यहां क्या हो रहा है इस पर कोई अंतर्दृष्टि दे सकता है?
लेखन सी: \ Vista फ़ाइलों को Vista में यूएसी सहमति की आवश्यकता है, इसलिए मुझे संदेह है कि सिस्टम डेस्कटॉप का उपयोग फ़ॉलबैक के रूप में करता है। –
क्या आपको लगता है कि मैं फॉलबैक को नियंत्रित कर सकता हूं? – uzil24
आप अभी भी कोर ऐप पुस्तकालयों और ऐसे के लिए% PROGRAMFILES% के अंदर डिफ़ॉल्ट जावा ऐप स्थापना सेट कर सकते हैं। लेकिन, आपके ** उपयोगकर्ता/डेटा कॉन्फ़िगरेशन को सहेजने के बजाय ** किसी भी विंडोज ओएस के तहत% PROGRAMFILES% के अंदर, 'System.getProperty ("user.home")' या 'System.getenv ("USERPROFILE") 'अपने जावा ऐप के अंदर एक विशेष फ़ोल्डर के साथ जो उपयोगकर्ता/ऐप को कुछ बदलने के लिए आसान बनाता है? –