Возможно ли / как встроить и получить доступ к файлам HTML в JAR?
Я сейчас несколько заблокирован: я написал довольно сложное Java Desktop App (без Applet / Web App!), которое имеет свое собственное «Руководство пользователя». Это руководство состоит из некоторых файлов HTML и JPG. Это руководство отображается в «Меню справки» в моем приложении с помощью JEditorPane.
Все идет нормально. Это работает очень хорошо, пока я запускаю Программу с Eclipse. Как только я создаю версию развертывания как исполняемый файл jar (который упакован в .exe с launch4j), HTML «Viewer» не может отобразить руководство пользователя (изображения отсутствуют).
Я понимаю, почему это происходит, но я понятия не имею, как это исправить / обойти.
Мое приложение загружает свои ресурсы (свойства «Файлы», «Иконки» и т. Д.) Через getClass (). GetResource (). Примеры:
this.setIconImage(new ImageIcon(getClass().getResource("/images/dialog-question.png")).getImage());
stream = new BufferedInputStream(MABIUpdater.class.getResourceAsStream("/settings.properties"));
Как я уже говорил, это работает очень хорошо (запуск приложения из Eclipse ИЛИ в виде упакованного исполняемого файла или runnable-jar.
Поэтому я тоже попытался получить доступ к своим HTML-руководствам:
File manual = new File(getClass().getResource("/manual/help.html").toURI());
jEditorPane.setPage(manual.toURI().toURL());
Это НЕ действительно работает. Запуская программу через Eclipse, я вижу Руководство, но с отсутствующими изображениями. Запуская его через jar / exe, я получаю пустую рамку.
Так есть ли какая-нибудь «хитрость» в том, как этого добиться? Я предполагаю, что одной из проблем является сама страница HTML, потому что она не может получить доступ к связанным изображениям в этом банке. Вот действительно маленький пример HTML-файла, который не работает (отсутствует изображение):
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html lang="de">
<head>
<title>Manual</title>
</head>
<body>
<h1>Example: </h1>
<p>fubar</p>
<img style="display: block; text-align: center;" src="../manual/img/Shot01.png" width="666" height="644" border="0" alt="Bildtext">
<p><a href=\"http://www.google.com/\">blablubb</a></p>
</body>
</html>
Я надеюсь, что моя проблема ясна, и у кого-то есть идея;).
Редактировать: все необходимые HTML-файлы и изображения находятся в JAR-файле / classpath. (просто чтобы прояснить это)