2009-02-18 8 views
6

मैं फ़ाइलों की एक सूची प्रदर्शित कर रहा हूं; i.e. xls, doc, pdf, odt आदि, मेरे जावा एप्लिकेशन (ग्रहण आरसीपी) में। जब उपयोगकर्ता फ़ाइल पर क्लिक करता है, तो मैं उचित रूप से लॉन्च करना चाहता हूं (ओएस क्या सोचता है) मूल आवेदन, जैसे कि यह विंडोज एक्सप्लोरर या फाइंडर में होता है।जावा से दी गई फ़ाइल के लिए डिफ़ॉल्ट (मूल) एप्लिकेशन कैसे लॉन्च करें?

और जब मैं यहां हूं: यह भी अच्छा होगा कि फाइंडर या एक्सप्लोरर विभिन्न फ़ाइल प्रकारों के लिए उपयोग करें।

क्या इसके लिए कोई लाइब्रेरी या ग्रहण प्लगइन है?

+1

यह इस सवाल का डुप्लिकेट हो गया लगता है: http://stackoverflow.com/questions/325299/cross-platform-way-to-open-a- फ़ाइल-उपयोग-जावा -1-5 –

+1

वास्तव में, जावा 1.5 प्रतिबंध पर ध्यान दें: "मुझे पता है कि जावा 1.6 ने डेस्कटॉप एपीआई पेश की है, लेकिन मुझे जावा 1.5 के लिए एक समाधान की आवश्यकता है।" – Jonik

उत्तर

2

लगता है जैसे आप Java Activation Framework ("JAF") के बाद हैं। यह एपीआई आपको यह निर्धारित करने देता है कि कौन सी फाइलें हैं और आप उन पर क्या कर सकते हैं। या वैकल्पिक रूप से Java Desktop Integration Component ("जेडीआईसी")। जेडीआईसी आपको क्वेरी फाइल एसोसिएशन बनाने और संदेह करने की अनुमति देता है।

दोनों परियोजनाएं अर्ध-त्याग किए गए राज्य हाउयर (श्वास) में प्रतीत होती हैं। लेकिन यह इन दिनों सूर्य के लिए पाठ्यक्रम के बराबर है। केवल एक चीज जो मुझे पता है वह कुछ विंडोज विशिष्ट तृतीय पक्ष लाइब्रेरी है जो जेएनआई पर आधारित है जिसे Winpack कहा जाता है। यह अन्य चीजों का भी गुच्छा करता है।

FileSystemView कक्षा (जावा 1.4+) का उपयोग करके आप get the associated icon कर सकते हैं।

+0

हम्म, डेस्कटॉप.ओपेन() सबसे आसान तरीका लगता है। यदि कोई जावा 6 का उपयोग कर सकता है, तो क्या इन libs में से किसी एक का उपयोग करने के कुछ फायदे हैं? – Jonik

6

मैं पाया है ग्रहण के SWT में एक API अब है कि चाल कर रहा है: "। बाह्य प्रोग्राम शुरूआत के ऑपरेटिंग सिस्टम विशिष्ट पहलुओं की खोज के लिए सुविधाओं के लिए पहुँच प्रदान करता है" org.eclipse.swt.program.Program

इसमें किसी दिए गए फ़ाइल एक्सटेंशन के लिए प्रोग्राम खोजने, प्रोग्राम का आइकन प्राप्त करने और प्रोग्राम को लॉन्च करने के तरीके भी हैं।

11

क्या आप चाहते हैं java.awt.Desktop है:

Desktop.getDesktop().open(file); 
+1

डेस्कटॉप विंडोज पर अच्छी तरह से काम नहीं करता है: 'java.io.IOException: फ़ाइल खोलने में विफल:/C: /Documents%20and%20Settings/Administrator/Desktop/test.pdf। त्रुटि संदेश: अनुप्रयोग नहीं मिला \t sun.awt.windows.WDesktopPeer.ShellExecute (अज्ञात स्रोत) ~ [na: 1.6.0_26] ' – Eero

+2

ईरो, फ़ंक्शन डिज़ाइन के रूप में काम कर रहा है: http://download.oracle.com /javase/6/docs/api/java/awt/Desktop.html#open%28java.io.File%29 ओपन एक IOException फेंक देगा "अगर निर्दिष्ट फ़ाइल में कोई संबंधित एप्लिकेशन नहीं है या संबंधित एप्लिकेशन लॉन्च होने में विफल रहता है"। यदि आप IOException फेंक दिया जाता है तो आप किसी अनुप्रयोग के उपयोग के लिए संकेत देने के बारे में सोच सकते हैं। –

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