Откройте файл с внешним приложением на Java

Как открыть файл из Java-приложения, если вы не знаете, с каким приложением связан этот файл. Кроме того, поскольку я использую Java, я бы предпочел независимое от платформы решение.

3 ответа

Решение

С JDK1.6, java.awt.Desktop класс может быть полезным.

public static void open(File document) throws IOException {
    Desktop dt = Desktop.getDesktop();
    dt.open(document);
}
File file
Desktop.getDesktop().open( file );

Начиная с Java 1.6

До этого вы могли проверить этот вопрос

Резюме

Это будет выглядеть примерно так:

Runtime.getRuntime().exec( getCommand( file ) );

public String getCommand( String file ){ 
    // Depending on the platform could be
    //String.format("gnome-open %s", fileName)
    //String.format("open %s", fileName)
    //String.format("cmd /c start %s", fileName)
    // etc. 
}

Вы можете взломать что-нибудь вместе с файлом bat в Windows и аналогичным файлом в Unix, но это не будет так весело.

Я думаю, что лучшим выбором для вас будут компоненты интеграции JDesktop (JDIC). В частности, класс Desktop имеет именно тот метод, который вы ищете.

РЕДАКТИРОВАТЬ: Очевидно, я отстала от времени, потому что это было интегрировано в Java 1.6. В любом случае, если вы работаете в более ранней версии Java, это может быть полезно.

Другие вопросы по тегам