Откройте путь с помощью Desktop.open() из java на ubuntu (linux)

Из моего приложения, написанного на java, я хочу открыть папку, используя файл операционной системы исследователь.

Я использую Desktop.open(новый файл(путь))

Это прекрасно работает в Windows, но в Ubuntu 11.10 (linux) не работает. Использование Desktop.open для открытия файла работает как в Ubuntu, так и в Windows.

Использование промежуточного шага: Файл fPath=новый файл(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-универсальный — amd64)

Java: 1.6.0_30-b12

Домашняя страница Java: /opt/java/64/jre1.6.0_30

7
задан tshepang 20 February 2014 в 21:34
поделиться