Как открыть файл с приложением по умолчанию в SWT? - PullRequest
6 голосов
/ 30 марта 2012

У меня есть, например, .pdf файл (путь к этому файлу). Как открыть этот файл в приложении по умолчанию (возможно, Acrobat Reader) из приложения SWT (например, по нажатию кнопки)?

Ответы [ 3 ]

11 голосов
/ 30 марта 2012

Вы можете использовать:

Program.launch(file);

, чтобы открыть файл (используя приложение или создатель по умолчанию).Из javadoc:

Запускает исполняемый файл операционной системы, связанный с файлом или URL (http: // или https://). Если файл является исполняемым, тогда запускается исполняемый файл. Обратите внимание, что Display должен уже существовать, чтобы гарантировать, что этот метод возвращает соответствующий результат.

Обратите внимание, что в Program.launch() есть некоторые особенности (или, по крайней мере, они были, хотя они могли быть исправлены в более поздних версиях)времени выполнения.) Я действительно не помню специфику ошибок, но мы делаем некоторые проверки, чтобы обойти некоторые проблемы:

  1. Если вы на платформе Unix, иВы указываете абсолютный путь, может быть проблема с открытием этого файла. Мы префикс абсолютных путей с /. - так что /tmp/foo будет переведен в /./tmp/foo - хотя я действительно не помню специфику этой ошибкине более того.

  2. В Windows, если вы пытаетесь открыть UNC-путь - например, \\server\bar - вам нужно заключить строку в двойные кавычки. Fили пример: Program.open("\"\\server\bar\"");

1 голос
/ 11 июля 2013

Может быть, это поможет найти решение: мы столкнулись с проблемой с пространством PermGen при вызове Desktop.open() - в AWTpackage - из нашего приложения SWT.

Так что я бы предпочел Program.launch() над Desktop.open() в SWT-среде.

1 голос
/ 30 марта 2012

Попробуйте Desktop.open:

Desktop.getDesktop().open(file);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...