मैं चाहता हूं कि मेरा जावा डेस्कटॉप एप्लिकेशन यह जान सके कि उपयोगकर्ता उस पीसी पर पहली बार इसे चला रहा है या नहीं। चूंकि जार-फ़ाइल उपयोगकर्ताओं के बीच साझा की जा सकती है क्योंकि मैं जार-फ़ाइल के अंदर एक फाइल को लिखना नहीं चाहता हूं। स्पष्ट रूप से ऐसा करने के कई तरीके हैं लेकिन आप क्या सलाह देंगे? (यह क्रॉस-प्लेटफॉर्म होना चाहिए)। धन्यवादजावा ऐप में पहली बार उपयोगकर्ता का पता लगाएं
उत्तर
सिस्टम-व्यापी या उपयोगकर्ता-विशिष्ट प्राथमिकताओं को प्राप्त करने के लिए Preferences और systemRoot() या userRoot() विधियों का उपयोग करने का प्रयास करें।
मैं उपयोगकर्ता होम निर्देशिका का उपयोग करने की सलाह दूंगा जहां आप उपयोगकर्ता विशिष्ट सेटिंग्स फ़ाइल डाल सकते हैं। इससे आपको पहली बार उपयोगकर्ताओं का पता लगाने की अनुमति मिल जाएगी और साथ ही वे वरीयताओं को याद रख सकेंगे जिन्हें वे चुन सकते हैं।
System.getProperty("user.home"); // returns the home directory cross platform
यह एक प्रभावी समाधान है, शायद इस मामले में बहुत सुंदर नहीं है, क्योंकि उपयोगकर्ता की विशिष्ट सेटिंग्स की आवश्यकता नहीं है। निश्चित रूप से ऐप होम निर्देशिका में एक खाली फ़ाइल रख सकता है (यदि फ़ाइल मौजूद है तो यह पहली बार उपयोगकर्ता नहीं है), लेकिन उपयोगकर्ता घर फ़ोल्डर में ऐसी फ़ाइल से नाराज हो सकता है और इसे हटा सकता है। –
हर ओएस जहां उपयोगकर्ता डेटा संग्रहीत किया जाता है कुछ विशिष्ट निर्देशिका (/home
, C:\Users
, C:\Documents and settings
) है। यह मान आमतौर पर "user.home" सिस्टम प्रॉपर्टी के साथ JVM में उपलब्ध होता है।
अपनी उपयोगकर्ता कॉन्फ़िगरेशन को स्टोर करने के लिए कुछ फ़ाइल स्टोर करें। बेशक, प्रत्येक ओएस के पास ऐसा करने का तरीका होता है ("एप्लिकेशन डेटा" फ़ोल्डर, एक नाम वाला फ़ोल्डर जो डॉट से शुरू होता है), आपको यह सुनिश्चित करना चाहिए कि आप इसका अनुपालन करते हैं।
- 1. जांचें कि एंड्रॉइड में मेरे ऐप का पहली बार उपयोगकर्ता
- 2. पता लगाएं कि पहली बार आईओएस ऐप लॉन्च किया गया है?
- 3. PHP में उपयोगकर्ता भाषा का पता लगाएं - स्थिर समाधान
- 4. स्ट्रिंग/उपयोगकर्ता इनपुट भाषा का पता लगाएं
- 5. पता लगाएं कि उपयोगकर्ता टेक्स्टरेरा
- 6. पता लगाएं कि उपयोगकर्ता द्वारा
- 7. Google ऐप इंजन - पता लगाएं कि कोई उपयोगकर्ता व्यवस्थापक है
- 8. टेस्टफ्लाइट का पता लगाएं?
- 9. पहली बार
- 10. पहली बार जावा में एक एपीआई बनाना
- 11. भाषा का पता लगाएं
- 12. एक आईपी पता बाइंडिंग सिर्फ पहली बार
- 13. ऐप क्रैकलाइट डेटाबेस को पहली बार
- 14. जावा: प्रतिबिंब कोड उपयोग का पता लगाएं
- 15. ऑनलाइन उपयोगकर्ताओं का पता लगाएं?
- 16. एन्कोडिंग का पता लगाएं
- 17. एंड्रॉइड में उपयोगकर्ता उपस्थिति का पता कैसे लगाएं?
- 18. आईफोन ऐप में कैमरे के अस्तित्व का पता लगाएं?
- 19. एंड्रॉइड ऐप अपग्रेड का पता लगाएं और ईयूएलए
- 20. पता लगाएं कि कोई उपयोगकर्ता UITextView
- 21. का पता लगाएं और
- 22. पता लगाएं कि उपयोगकर्ता ने बैक बटन
- 23. मेरा आईओएस ऐप केवल पहली बार ठीक से वर्तमान भाषा का पता क्यों लगाता है?
- 24. जेएस: पता लगाएं कि जब उपयोगकर्ता बटन
- 25. पता लगाएं कि आईओएस ऐप हैक
- 26. पता लगाएं कि ऐप एंड्रॉइड मार्केट
- 27. किस भाषा में गुण पहली बार
- 28. जावा में पहचानकर्ता के घोषित प्रकार का पता कैसे लगाएं?
- 29. वेबब्रोसर नियंत्रण का पता लगाएं
- 30. का पता लगाएं CAShapeLayer touch
यह वास्तव में साफ दिखता है, लेकिन शायद थोड़ा खतरनाक हो सकता है? सिस्टम/उपयोगकर्ता वरीयताओं को आसानी से किसी अन्य एप्लिकेशन द्वारा या मैन्युअल रूप से उपयोगकर्ता द्वारा साफ़ किया जा सकता है, है ना? (शायद यह बहुत असामान्य है ..?) –
किसी भी अन्य समाधान प्राथमिकताओं के साथ उपयोगकर्ता/एप्लिकेशन द्वारा इसे बदला जा सकता है जिसके पास अनुमति है। यदि आपको विभिन्न अनुप्रयोगों की वरीयताओं के बीच संघर्ष को रोकना है, तो [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
[यहां] (http://mindprod.com/jgloss/preferences.html#LOCATION) यह भी कुछ जानकारी है कि वरीयताओं को आम तौर पर विभिन्न प्रणालियों में संग्रहीत किया जाता है। और [यहां] (http://java.sun.com/developer/technicalArticles/releases/preferences/) 'प्राथमिकताएं 'के बारे में एक पुराना लेकिन उपयोगी तकनीकी लेख है। – szhem