2010-04-12 3 views
2

Как открыть URL-адрес с помощью стандартного браузера с Java?Как запустить стандартный браузер из приложения Java?

В настоящее время я использую этот код для открытия определенного URL (локально сохраненного html-файла), который отлично работает при запуске приложения с моей IDE (Eclipse), но после объединения программного обеспечения он больше не работает.

url = MainWindow.class.getResource("mySite.html"); 

    helpMenuItem.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent e) {  
      try { 
       java.awt.Desktop.getDesktop().browse(url.toURI()); 
      } 
      catch (URISyntaxException e1) { 
       e1.printStackTrace(); 
      } 
      catch (IOException e1) { 
       e1.printStackTrace(); 
      } 
     } 
    }); 

Любые предложения? Большое спасибо!

+2

Почему это не работает? Что происходит? – SLaks

ответ

2

но после комплектации Программное обеспечение, она больше не работает.

Вы не можете просматривать URL-адреса, указывающие на ресурсы внутри JAR-файла. Вам нужно извлечь ресурс (просто получите InputStream с помощью getResourceAsStream()) и сохраните его в другом месте (as temp file?), А затем просмотрите его.

+0

Итак, мне нужно преобразовать InputStream в файл, верно? – Peter

+0

Нет, возьмите файл в свой путь к классам и скопируйте его в свою файловую систему где-нибудь (например, в качестве временного файла, такого как BalusC). Затем вы можете открыть копию в браузере. – Michael

+0

Нет, просто напишите его в 'OutputStream' обычным способом Java IO, который может быть' FileOutputStream'. – BalusC

0

Любая идея, почему это не работает? Вы можете попробовать JDIC, он не был обновлен какое-то время, но должен сделать трюк.

0

Bare Bones Browser Launch - хорошее решение. Он очень прост в использовании:

BareBonesBrowserLaunch.openURL("http://www.stackoverflow.com"); 
+0

Его целью является просмотр HTML-файла в комплекте с приложением. Кроме того, это не намного лучше, чем Java SE, встроенный «Desktop # browse()». Это полезно, только если клиент все еще находится на 5-летней Java 5 или более ранней версии. – BalusC

+0

Oh neato, я даже не знал, что существует! – Michael

Смежные вопросы