2011-11-29 15 views
5

मैं चाहता हूं कि मेरा जावा डेस्कटॉप एप्लिकेशन यह जान सके कि उपयोगकर्ता उस पीसी पर पहली बार इसे चला रहा है या नहीं। चूंकि जार-फ़ाइल उपयोगकर्ताओं के बीच साझा की जा सकती है क्योंकि मैं जार-फ़ाइल के अंदर एक फाइल को लिखना नहीं चाहता हूं। स्पष्ट रूप से ऐसा करने के कई तरीके हैं लेकिन आप क्या सलाह देंगे? (यह क्रॉस-प्लेटफॉर्म होना चाहिए)। धन्यवादजावा ऐप में पहली बार उपयोगकर्ता का पता लगाएं

उत्तर

4

सिस्टम-व्यापी या उपयोगकर्ता-विशिष्ट प्राथमिकताओं को प्राप्त करने के लिए Preferences और systemRoot() या userRoot() विधियों का उपयोग करने का प्रयास करें।

+0

यह वास्तव में साफ दिखता है, लेकिन शायद थोड़ा खतरनाक हो सकता है? सिस्टम/उपयोगकर्ता वरीयताओं को आसानी से किसी अन्य एप्लिकेशन द्वारा या मैन्युअल रूप से उपयोगकर्ता द्वारा साफ़ किया जा सकता है, है ना? (शायद यह बहुत असामान्य है ..?) –

+0

किसी भी अन्य समाधान प्राथमिकताओं के साथ उपयोगकर्ता/एप्लिकेशन द्वारा इसे बदला जा सकता है जिसके पास अनुमति है। यदि आपको विभिन्न अनुप्रयोगों की वरीयताओं के बीच संघर्ष को रोकना है, तो [systemNodeForPackage (क्लास)] का उपयोग करने पर विचार करें (http://docs.oracle.com/javase/6/docs/api/java/util/prefs/Preferences.html#systemNodeForPackage % 28java.lang.Class% 29) या [userNodeForPackage (क्लास)] (http://docs.oracle.com/javase/6/docs/api/java/util/prefs/Preferences.html#userNodeForPackage%28java.lang .Class% 2 9) विधियों। – szhem

+0

[यहां] (http://mindprod.com/jgloss/preferences.html#LOCATION) यह भी कुछ जानकारी है कि वरीयताओं को आम तौर पर विभिन्न प्रणालियों में संग्रहीत किया जाता है। और [यहां] (http://java.sun.com/developer/technicalArticles/releases/preferences/) 'प्राथमिकताएं 'के बारे में एक पुराना लेकिन उपयोगी तकनीकी लेख है। – szhem

7

मैं उपयोगकर्ता होम निर्देशिका का उपयोग करने की सलाह दूंगा जहां आप उपयोगकर्ता विशिष्ट सेटिंग्स फ़ाइल डाल सकते हैं। इससे आपको पहली बार उपयोगकर्ताओं का पता लगाने की अनुमति मिल जाएगी और साथ ही वे वरीयताओं को याद रख सकेंगे जिन्हें वे चुन सकते हैं।

System.getProperty("user.home"); // returns the home directory cross platform 
+0

यह एक प्रभावी समाधान है, शायद इस मामले में बहुत सुंदर नहीं है, क्योंकि उपयोगकर्ता की विशिष्ट सेटिंग्स की आवश्यकता नहीं है। निश्चित रूप से ऐप होम निर्देशिका में एक खाली फ़ाइल रख सकता है (यदि फ़ाइल मौजूद है तो यह पहली बार उपयोगकर्ता नहीं है), लेकिन उपयोगकर्ता घर फ़ोल्डर में ऐसी फ़ाइल से नाराज हो सकता है और इसे हटा सकता है। –

0

हर ओएस जहां उपयोगकर्ता डेटा संग्रहीत किया जाता है कुछ विशिष्ट निर्देशिका (/home, C:\Users, C:\Documents and settings) है। यह मान आमतौर पर "user.home" सिस्टम प्रॉपर्टी के साथ JVM में उपलब्ध होता है।

अपनी उपयोगकर्ता कॉन्फ़िगरेशन को स्टोर करने के लिए कुछ फ़ाइल स्टोर करें। बेशक, प्रत्येक ओएस के पास ऐसा करने का तरीका होता है ("एप्लिकेशन डेटा" फ़ोल्डर, एक नाम वाला फ़ोल्डर जो डॉट से शुरू होता है), आपको यह सुनिश्चित करना चाहिए कि आप इसका अनुपालन करते हैं।

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