2016-03-31 3 views
0

Я знаю, что очень похожий вопрос был задан несколько раз для чтения изображений/txt-файлов & xml-файлов после упаковки проекта в файл JAR.Java чтение файла html, хранящегося в JAR

Но, к сожалению, все примеры и вещи, которые я прочитал, не отвечают на мой вопрос и, похоже, не работают, так что это фрагмент моего кода, я использую Eclipse для упаковки проекта, и он отлично работает, не экспортируя в исполняемый банку, но при экспорте не удается загрузить/найти html-файл.

 // TODO - failed to open in file when running in JAR 
    File filename = new File(this.getClass().getResource("/resource-uk.html").getFile()); 

    try { 
     URL url = new URL("file:///"+filename); 
     html = new JEditorPane(url); 
     html.setEditable(false); 
     JScrollPane scrollPane = new JScrollPane(); 
     scrollPane.getViewport().add(html); 
     topPanel.add(scrollPane, BorderLayout.CENTER); 
     html.addHyperlinkListener(this); 
    } 
    catch(MalformedURLException e) 
    { 
     System.out.println("Malformed URL: " + e); 
    } 
    catch(IOException e) 
    { 
     System.out.println("IOException: " + e); 
    } 

ответ

-1

включает файл/папку, содержащую файл в пути к классам в файле манифеста

+0

Файл находится в корневом каталоге для кувшина /resource-uk.html Вот Matifest Manifest-Version: 1,0 Rsrc-Class-Path: ./ Class-Path :. Rsrc-Main-Class: smallsimpleapps.com.MainLaunch Main-Class: org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader автоматически генерируется Eclipse, – gcclinux

0

удалить эту строку: «Файл имя_файл = новый файл (this.getClass() getResource (»/ресурсы Великобритании. HTML ") GetFile());".

и использовать этот

URL URL = новый URL-адрес (GetClass() getResource ("/ Ресурс-uk.html") GetFile()..);

и убедитесь, что путь, написанный на "", чувствителен к регистру, поэтому проверьте правильность имени файла.

+0

Почти работал ... Я использовал следующий синтаксис URL url = this.getClass().getResource("/license-uk.html"); Этот снова будет работать внутри Eclipse, но теперь, когда я экспортирую JAR, он открывается как простой TXT, а не формат HTML – gcclinux

0

Проблема Ok решена путем изменения приведенного ниже кода, а также в Eclipse при экспорте в исполняемый-jar мне пришлось выбрать «Извлечь необходимые библиотеки в сгенерированный JAR».

try { 
     URL url = this.getClass().getResource("/license-uk.html"); 
     JEditorPane html = new JEditorPane(); 
     html.setPage(url); 
     html.setEditable(false); 
     JScrollPane scrollPane = new JScrollPane(); 
     scrollPane.getViewport().add(html); 
     topPanel.add(scrollPane, BorderLayout.CENTER); 
     html.addHyperlinkListener(this); 

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