Встроить HTML в JAR с помощью Eclipse

Я уже прочитал этот вопрос, но все равно не повезло.

Я хочу вставлять HTML-страницы с файлами CSS. В моем проекте у меня есть папка res, в .classpath у меня есть <classpathentry kind="src" path="res"/> так что мои файлы встроены.

|-- src
|   `-- com
|       `-- pkg
|           `-- blahblahblah
|               `-- CTLiner.java
`-- res
    `-- html
        |-- index.html
        `-- style.css

CTLiner.java - файл основного класса.

URL u = CTLiner.class.getResource("/html/index.html");
System.out.println(u.toURI().toString());
webView.showPage(u);

Я использую этот код для загрузки index.html. Если я запускаю это из Eclipse, я получаю следующий вывод

file:/home/user/workspace/CTLiner/bin/html/index.html

А также

<link href="style.css" rel="stylesheet" type="text/css" />

Прекрасно работает. И когда я экспортирую проект как Runnable JAR, код выводит: rsrc:html/index.html И файл CSS не найден.

Я считаю, что если я перемещу файлы index.html и style.css вверх по дереву (могу ли я так сказать?), все будет работать, но есть ли другое решение?


person Ilgiz Mustafin    schedule 05.12.2014    source источник
comment
Попробуйте поместить его в src/main/resources?   -  person TungstenX    schedule 05.12.2014
comment
@TungstenX работает так же, если я понял, что вы имеете в виду.   -  person Ilgiz Mustafin    schedule 05.12.2014
comment
Я обнаружил, что проще поместить его туда, куда хочет ваша IDE/компилятор, чем бороться с ним ;) Вы смотрели на содержимое файла JAR? (используя winrar или winzip и т.д.)   -  person TungstenX    schedule 05.12.2014
comment
Ага. Если я сделаю все, как я упомянул в вопросе, папка html появится в корне JAR. Я не знаю, как проверить, где он ищет style.css. О, подожди. Я знаю, проверю.   -  person Ilgiz Mustafin    schedule 05.12.2014
comment
@TungstenX Он выглядит в корне JAR.   -  person Ilgiz Mustafin    schedule 05.12.2014
comment
Таким образом, index.html находится в /html, а styles.css — в /? index.html ищет его в своем собственном каталоге, то есть /html   -  person TungstenX    schedule 05.12.2014
comment
Я тоже так думал, но нет. У меня есть стиль в / и html в /html/index.html. Наконец решено. Проблема заключалась в опции работы с библиотекой в ​​меню экспорта. Сейчас опубликую ответ =)   -  person Ilgiz Mustafin    schedule 05.12.2014


Ответы (1)


Я использовал Package required libraries into generated JAR, но мне пришлось использовать Extract required libraries into generated JAR. Я пока не знаю, почему.

Когда я использовал метод Package, java искал style.css в корне файла JAR, независимо от того, где находился файл HTML.

Экспорт меню

person Ilgiz Mustafin    schedule 05.12.2014