حفظ الإعدادات المستخدم / قاعدة بيانات / مخبأ ... في جافا (على كل OS)

StackOverflow https://stackoverflow.com/questions/333317

سؤال

وتطبيق جافا بلدي هو إنقاذ الاشياء في "user.home 'ولكن على ويندوز هذا لا يبدو أن المسار الصحيح لإنقاذ معلومات التطبيق (كما قال لي صديق). والخيار الآخر هو استخدام واجهة برمجة تفضيلات ولكن ليس من الممكن لإعداد موقع HSQLDB باستخدام API الأفضليات. أيضا، أريد أن يكون جميع الملفات متوفرة في نفس المجلد (قاعدة البيانات المحلية، التكوين، ذاكرة التخزين المؤقت، ...).

وأنا أبحث عن بعض المثال رمز أو الإطار الذي يعتني الاشياء السراج محددة.

هل كانت مفيدة؟

المحلول

في بلدي ويندوز إكس بي SP3 نظام برو، ونقاط user.home إلى C:\Documents and settings\<username> الكثير من التطبيقات فقط تخزين البيانات الخاصة بهم هناك (بدلا من هذا الطريق + تطبيق البيانات، ولكن البعض الآخر يذهب الى هناك)، إنشاء دليل على الطراز يونكس، أي. نقطة + اسم التطبيق. (أمثلة: .antexplorer، .sqlworkbench، .squirrel-SQL، .SunDownloadManager، .p4qt، .gimp 2.4، الخ)

ويبدو وكأنه، ممارسة شائعة لائقة ...

نصائح أخرى

وانها غير عادية لبرنامج نافذة لحفظ البيانات في user.home ولكن ليس "خطأ". تطبيقات ويندوز الحب لنشر البيانات الخاصة بهم في كل مكان (قليلا في التسجيل، قليلا في التطبيق تثبيت الدليل قليلا في دليل Windows، قليلا في SYSTEM32، قليلا هنا وقليلا هناك). في النهاية، وهذا يجعل من المستحيل احتياطية نظيفة أو إزالة شيء الذي ينتج الشهير "ويندوز تعفن" (أي تضطر إلى إعادة تثبيت كل بضعة أشهر).

وعلى أي حال. إذا كنت حقا لا تريد استخدام user.home (وأنا لا أرى أي سبب لعدم)، واستخدام كود مثل <وأ href = "http://commons.apache.org/lang/xref/org/apache/commons/ لانج / SystemUtils.html # 1007 "يختلط =" نوفولو noreferrer "> هذا من أباتشي العموم لانغ لمعرفة ما اذا كنت تعمل على ويندوز. إذا كان هذا ينتج صحيح، يطفو على السطح الحوار اختيار الدليل حيث يمكن للمستخدم تحديد المكان الذي تريد حفظ البيانات الخاصة بهم.

وحفظ هذه المعلومات في تفضيلات واستخدام هذا المسار في المرة القادمة عند بدء التطبيق. بهذه الطريقة، يمكن للمستخدمين تحديد المكان الذي يريدون البيانات الخاصة بهم وكان لديك فقط لمغادرة بت واحد من المعلومات في بادئات.

للحصول على "فو" تطبيق فما استقاموا لكم فاستقيموا إنشاء دليل يدعى ".foo" داخل user.home. للحصول على Windows سيبدو غريبا بعض الشيء، ولكن تقريبا لا أحد ينظر من أي وقت مضى في هذا الدليل (وانها مليئة الدلائل غامضة على أي حال) وعلى لينكس / سولاريس / ... سوف يؤدي في دليل مخفي لا فوضى الدليل المستخدمين المنزليين بصريا.

وحيوي قراءة (من التعليمات البرمجية) قيمة متغير البيئة APPDATA، وتخزين ملفات التكوين الخاصة بك في %APPDATA%\\.myapp\config

و==> القيمة منصة تعتمد، لا تستخدم أي مسارات الثابت ترميز، دائما قراءة الحياة الفطرية. فار.

والمشكلة ليست Wiindows لكن الإعداد جافا القياسية.

ومناقشة طويلة http://bugs.sun.com/bugdatabase/view_bug.do؟bug_id=4787931> هنا

وأنصح اختيار هذا الأمر على "-D MYLOC =٪ USERPROFILE٪ 'الملكية على سطر الأوامر.

وتجدر الإشارة إلى أنك سوف فقط الحصول على "USERPROFILE" إذا لم المستخدم تسجيل الدخول سطح المكتب، وهذا لا يحصل تعيين إذا كان المستخدم متصلا remotly مع سيتريكس أو ما شابه ذلك أو عن طريق سه، أيضا، coprporate المكتبية تسكع مع هذا الإعداد و قد تعيينها إلى شيء غير صالحة للاستعمال.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top