Запуск окна браузера из Java WebStart (JNLP) в Java 6u13+

StackOverflow https://stackoverflow.com/questions/1119591

  •  12-09-2019
  •  | 
  •  

Вопрос

В Java 6u13 и 6u14 обнаружена ошибка.http://bugs.sun.com/view_bug.do?bug_id=6835450

Проще говоря, следующий код должен открывать окно браузера, но из-за ошибки во фреймворке он перестал работать в Java 1.6 update 13.Больше ничего не открывается.Была аналогичная ошибка для Java-апплетов (которая была исправлена в обновлении 14), но она все еще существует в обновлении 14 для Java WebStart / JNLP.

getAppletContext().showDocument(new URL("http://www.sun.com"),"_blank");

Знаете ли вы о каких-либо обходных путях?

Это было полезно?

Решение

Я не пробовал это в JNLP, но обычно это должно сработать:

java.awt.Desktop.getDesktop().browse(new URI("http://www.sun.com"));

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

Делает BasicService.showDocument работать?Я не могу вспомнить, как это реализовано навскидку.

В качестве альтернативы, используйте LiveConnect для самостоятельного выполнения JavaScript (хотя это может привести к тем же проблемам).

public boolean openUrl(final URL url) {
    try {
        // Lookup the javax.jnlp.BasicService object
        BasicService bs = (BasicService)javax.jnlp.ServiceManager.lookup("javax.jnlp.BasicService");
        // Invoke the showDocument method
        return bs.showDocument(url);
    } catch(UnavailableServiceException ue) {
        // Service is not supported
        log.log(Level.WARNING, "Could not open URL " + url, ue);
        return false;
    }       
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top