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




Вы можете взломать что-нибудь вместе с файлом bat в Windows или аналогичным файлом в Unix, но это было бы не так весело.
Думаю, вам лучше всего будет Компоненты интеграции JDesktop (JDIC). В частности, класс Рабочий стол имеет именно тот метод, который вы ищете.
Обновлено: По-видимому, я отстал от времени, потому что это было интегрировано в Java 1.6. В любом случае, если вы работаете с более ранней версией Java, это может быть полезно.
В JDK1.6 может быть полезен класс java.awt.Desktop.
public static void open(File document) throws IOException {
Desktop dt = Desktop.getDesktop();
dt.open(document);
}
Этот фрагмент кода также работает в Linux?
Да ... но лучше сначала вызвать в Desktop.isDesktopSupported() или Desktop.isSupported(action), см. Javadoc.
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-команды, которая доступна не везде.
Предоставленные ссылки не работают. Вам нужно исправить оба. Спасибо.