2015-01-06 3 views
0

У меня есть следующий метод, который будет запускать и загружать страницы в страницу HTML в браузере по умолчанию:Показать сайт в Java

try { 
      String url = "file:///C:/Users/Steve/Google%20Drive/Higher%20National%20Diploma%201/Semester%201/Assignments/Object%20Oriented%20Programming%20(Java)/Steve_Azzopardi_HND3/help/lotto.html"; 
      Desktop desktop = Desktop.getDesktop(); 
      desktop.browse(new URI(url)); 
     } catch (Exception ex) { 
      System.out.println("Help file was not found"); 
     } 

Он отлично работает, но я хочу, чтобы сделать его более универсальным, что означает, если я перееду файл он не сломает ссылку. Я переместил файл в каталог проекта, поэтому, когда я перемещаю проект, HTML-страница перемещается вместе с ним. Как я могу это сделать?

EDIT: обновленный код

try { 
      String url = new File("help/lotto.html").getAbsolutePath(); 
      System.out.println(url); 
      Desktop desktop = Desktop.getDesktop(); 
      desktop.browse(new URI(url)); 
     } catch (Exception ex) { 
      ex.printStackTrace(); 
      System.out.println("Help file was not found"); 
     } 

Url Выход: C: \ Users \ Steve \ Google Drive \ Higher National Diploma 1 \ Семестр 1 \ Задания \ объектно-ориентированного программирования (Java) \ Steve_Azzopardi_HND3 \ помощь \ lotto.html

Исключение трассировки стека: java.net.URISyntaxException: недопустимый символ в непрозрачной части с индексом 2: C: \ Users \ Steve

+3

Поместите свой ресурс в пути к классам и загрузить его оттуда. –

+0

Что это значит? извините – Steve

+0

[Начать здесь] (http://en.m.wikipedia.org/wiki/Classpath_ (Java)). –

ответ

1

Вы можете поместить его в classpath (лучшее решение, на мой взгляд). Но вы также можете сделать это в Java:

String currDir = new File("").getAbsolutePath(); //project directory 

Поместите файл в директории, которую вы хотели бы использовать, например, сам каталог проекта. Поместите туда файл html, и если вы переместите свой проект, вы тоже переместите его.

Но я думаю, что вы хотите создать HTML папку внутри директории:

project_path/помощь/lotto.html

Затем вы можете загрузить его, как это:

try { 
     File f = new File("help/lotto.html"); 
     URI uri = f.toURI(); 
     Desktop desktop = Desktop.getDesktop(); 
     desktop.browse(uri); 
} catch (Exception ex) { 
     System.out.println("Help file was not found"); 
} 
+0

попробовал код, он дает мне файл ошибки, не может быть сохранен в строке, – Steve

+0

опечатка, попробуйте еще раз @Colosuslol –

+0

Да, я сделал это прямо сейчас lol. Путь задан правильно, но теперь ури не работает из-за обратных косых черт. – Steve

0

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

+0

Можете привести пример, пожалуйста. Не понимаю – Steve

+0

Скопируйте файл в папку, в которой хранятся ваши сгенерированные файлы приложений. Затем прочитайте его оттуда –

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