Ответ 1
Вы можете сделать это с помощью
java.awt.Desktop.getDesktop().edit(file);
Это ссылки на учебную статью на java.awt.Desktop:
Стандартная версия Java ™ версии 6 сужает разрыв между производительностью и интеграция собственных приложений и Java-приложения. Вместе с новые функции системного лотка, всплеск поддержка экрана и расширенная печать для JTables, Java SE версии 6 предоставляет API рабочего стола (java.awt.Desktop) API, который позволяет Приложения Java для взаимодействия с приложения по умолчанию, связанные с конкретные типы файлов на хосте платформы.
Это кросс-платформенный, но не поддерживается везде. Существует метод, который вы можете вызвать, чтобы проверить, доступен ли Desktop API, называемый isDesktopSupported (см. Ссылку для получения дополнительных пояснений). Я использовал этот API на днях, чтобы открыть PDF файлы в клиенте Swing.
К сожалению, существует известная ошибка которая влияет на некоторые платформы Windows (XP и 2003), что приведет к сбою JVM. Пишите один раз, отлаживайте везде, как обычно. Во всяком случае, для Windows есть приятное обходное решение, которое по-прежнему использует предпочтительное приложение пользователя:
if (System.getProperty("os.name").toLowerCase().contains("windows")) {
String cmd = "rundll32 url.dll,FileProtocolHandler " + file.getCanonicalPath();
Runtime.getRuntime().exec(cmd);
}
else {
Desktop.getDesktop().edit(file);
}