Из моего приложения, написанного на Java, я хочу открыть папку, используя проводник файлов операционной системы.
Я использую Desktop.open (новый файл (путь))
Это отлично работаетна окнах, но на Ubuntu 11.10 (Linux) это не работает.Использование Desktop.open для открытия файла работает, как в Ubuntu, так и в Windows.
Использование промежуточного этапа: File fPath = new File (fPath) и тестирование его с помощью fPath.exists () и fPath.isDirectory () возвращает true.
при использовании 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)
Я не смог проверить это на компьютере Appleпока, но я надеялся, что 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;
}
Некоторая дополнительная информация: ОС: Linux (3.0.0-16-generic - amd64)
Java: 1.6.0_30-b12
Java home: /opt/java/64/jre1.6.0_30