2009-07-08 5 views
25

मैं जावा लाइब्रेरी की तलाश में हूं जो मुझे फाइल सिस्टम पर बदलावों के बारे में सूचित कर सकता है।क्या जावा के लिए एक परिष्कृत फ़ाइल सिस्टम मॉनिटर है जो फ्रीवेयर या ओपन सोर्स है?

मुझे कुछ मुफ्त पुस्तकालय मिलते हैं, लेकिन वे सभी ब्रूट-बल का पता लगाने, यानी नियमित अंतराल में मतदान करते हैं। और अन्य हमेशा वाणिज्यिक होते हैं।

क्या मैं के लिए देख रहा हूँ Win32, लिनक्स के लिए FAM और जो कुछ अन्य ओएस पर उपलब्ध है के लिए एक पुस्तकालय जो ओएस से फाइल पर नजर रखने के कार्यों का उपयोग करता है, यानी FindFirstChangeNotification है। मुझे कोई फर्क नहीं पड़ता कि ब्रूट-फोर्स का उपयोग फ़ॉलबैक के रूप में किया जाता है, लेकिन विंडोज और लिनक्स के लिए इसे उपलब्ध ओएस सुविधाओं का उपयोग करना चाहिए।

+2

यह प्रश्न ऑफ-विषय प्रतीत होता है क्योंकि यह एक प्रोग्रामिंग साइट है। सहायता केंद्र में [मैं यहां कौन से विषय पूछ सकता हूं] (http://stackoverflow.com/help/on-topic) देखें। शायद [सॉफ्टवेयर सिफारिशें स्टैक एक्सचेंज] (https://softwarerecs.stackexchange.com/) पूछने के लिए एक बेहतर जगह होगी। – jww

+0

जावा 7 ने [वॉच सर्विस] [https://docs.oracle.com/javase/8/docs/api/java/nio/file/WatchService.html) पेश किया। –

उत्तर

25

JNotify आपको जो चाहिए वह करना प्रतीत होता है।

फाइल सिस्टम को प्रदूषित करना (कहें, अद्यतन समय परिवर्तनों के लिए एक निर्देशिका) आपके सिस्टम पर एक महत्वपूर्ण भार लागू नहीं करेगा, और छूट नहीं दी जानी चाहिए। टोमकैट इत्यादि जैसे ऐप्स कुछ समस्याओं के साथ गर्म तैनाती के प्रबंधन के लिए इसका इस्तेमाल करते हैं।

अब यह बहुत मदद नहीं है, लेकिन आने वाले जावा 7 में WatchService ठीक है।

4

जावा होना क्यों आवश्यक है?

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

मेरा सुझाव है कि अगर आपको लाइब्रेरी स्वयं नहीं मिलती है तो आपको या तो ब्रूट फोर्स का उपयोग करना होगा, या प्रत्येक मंच के लिए जेएनआई का उपयोग करके देशी एपीआई को कॉल करना होगा।

+0

हां, यह अनिवार्य रूप से ऐसी लाइब्रेरी होगी, एक रैपर। लेकिन मैं उम्मीद कर रहा था कि ऐसा कुछ पहले से मौजूद है। (यह मौजूद है, लेकिन मुक्त/मुक्त स्रोत नहीं) –

7

यदि आप जावा के खून बहने वाले किनारे पर काम कर रहे हैं, तो JSR 203: More New I/O APIs उर्फ ​​nio2 पर एक नज़र डालें जो जावा 7 में देय है।

एक नई फाइल सिस्टम इंटरफ़ेस विशेषताओं दायर करने के लिए थोक पहुँच का समर्थन, परिवर्तन सूचना, भागने के लिए फ़ाइल में विशिष्ट एपीआई, और प्लगेबल फाइल सिस्टम कार्यान्वयन के लिए एक सेवा प्रदाता इंटरफ़ेस;

6

jpathwatch एक और विकल्प है। यह निर्देशिका निगरानी के लिए जावा 7 की एपीआई लागू करता है, इसलिए वांछित होने पर जावा 7 को पोर्ट करना आसान है।

0

दो और अधिक विकल्प है कि वर्तमान में उपयोग मतदान:

हालांकि, क्योंकि दोनों परियोजनाओं बड़े सक्रिय समुदाय है, वे संभावना भविष्य में करने के लिए अद्यतन किया जाएगा जावा 7 वॉच सर्विस (FileSystem.newWatchService()) का समर्थन करें, जो अंतर्निहित प्लेटफॉर्म का उपयोग करता है एम की अधिसूचना सुविधाएं, यदि कोई हो।

दोनों पुस्तकालय विभिन्न अन्य परिवहन और प्रणालियों के साथ एकीकृत करने के लिए एक उपयोगी अमूर्त परत भी प्रदान करते हैं, ताकि आपका मुख्य एप्लिकेशन कोड किसी फाइल सिस्टम से प्राप्त इनपुट पर निर्भर न हो।

+1

डाउनवोट समझाते हुए एक टिप्पणी सहायक होगी ... – Raman

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