Откройте файл с помощью внешнего приложения на Java

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

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
17
0
31 447
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

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

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

Обновлено: По-видимому, я отстал от времени, потому что это было интегрировано в Java 1.6. В любом случае, если вы работаете с более ранней версией Java, это может быть полезно.

Предоставленные ссылки не работают. Вам нужно исправить оба. Спасибо.

Adeel Ansari 24.12.2008 07:39
Ответ принят как подходящий

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

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

Этот фрагмент кода также работает в Linux?

Siddhartha Sadhukhan 23.07.2017 17:58

Да ... но лучше сначала вызвать в Desktop.isDesktopSupported() или Desktop.isSupported(action), см. Javadoc.

RealHowTo 27.07.2017 22:55
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. 
}

Я хотел бы добавить «xdg-open» (portland.freedesktop.org/xdg-utils-1.0/xdg-open.html) для более интегрированной Linux-команды, которая доступна не везде.

Joachim Sauer 24.12.2008 12:25

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