पर जावा से लिखे गए मेरे आवेदन से मैं ऑपरेटिंग सिस्टम फ़ाइल एक्सप्लोरर का उपयोग करके एक फ़ोल्डर खोलना चाहता हूं।जावा से ubuntu (linux)
मैं Desktop.open (नई फ़ाइल (पथ))
यह खिड़कियों पर ठीक काम करता है, लेकिन ubuntu 11.10 (लिनक्स) पर यह काम नहीं करता का उपयोग करें। डेस्कटॉप खोलने के लिए डेस्कटॉप खोलने का काम करता है, दोनों उबंटू और विंडोज़ पर काम करता है।
में जो कदम का उपयोग करना: फ़ाइल fPath = नई फ़ाइल (fPath) और fPath.exists साथ यह परीक्षण() और fPath.isDirectory() दोनों सही देता है।
Desktop.open (नई फ़ाइल (पथ)) का उपयोग कर मुझे इस अपवाद देता है:
java.io.IOException: Failed to show URI:file:/and/here/the/path/I/use/
at sun.awt.X11.XDesktopPeer.launch(Unknown Source)
at sun.awt.X11.XDesktopPeer.open(Unknown Source)
at java.awt.Desktop.open(Unknown Source)
मैं एक सेब कंप्यूटर पर अभी तक यह परीक्षण करने में सक्षम नहीं था, लेकिन मैं Desktop.open (नई आशा व्यक्त की फ़ाइल (पथ)) वैसे प्रणाली स्वतंत्र .....
था, पूरा कोड:
Desktop desktop = null;
// Before more Desktop API is used, first check
// whether the API is supported by this particular
// virtual machine (VM) on this particular host.
if (!Desktop.isDesktopSupported()) {
// show Error
return;
}
desktop = Desktop.getDesktop();
String path = "here the path ";
// by the way: I use System.getProperty("file.separator") as file seperator
try {
File fPath=new File(path);
if(!fPath.exists()){
// show Error
return;
}
if(!fPath.isDirectory()){
// show Error
return;
}
desktop.open(new File(path));
} catch (IOException e) {
log.severe(e.getMessage());
e.printStackTrace();
// show Error
return;
}
कुछ अतिरिक्त जानकारी: ओएस: लिनक्स (3.0.0-16-सामान्य - amd64)
जावा: 1.6.0_30-बी 12
जावा घर: /opt/java/64/jre1.6.0_30
वैसे, अंत में कोड एक बहुत अधिक कॉम्पैक्ट हो सकता है, मैं कई अधिक लाइनों का इस्तेमाल किया डिबग करने के लिए कुछ अतिरिक्त जाँच में निर्माण करने के लिए यह .... Desktop.getDesktop()। खुला (नई फ़ाइल (पथ)); 1 लाइन में चाल करना चाहिए ... इसके चारों ओर पकड़ने की कोशिश करें, चोट नहीं पहुंचेगी। साथ ही Desktop.isDesktopSupported() पकड़ो। –
अभी भी सही समाधान नहीं मिला है, लेकिन ग्राहकों को पीसी को पूरी तरह से जांचने का कोई समय नहीं था .... (उदाहरण के लिए एडोब का कौन सा संस्करण) –
वैसे: मैंने पाया कि मेरे ग्राहकों में से एक को एक ही समस्या है विंडोज पीसी .... –