Czy jest możliwe / jak osadzać i uzyskiwać dostęp do plików HTML w JAR?

Jestem teraz trochę zablokowany: napisałem dość złożoną aplikację Java Desktop (bez apletu / aplikacji internetowej!), która ma własną „instrukcję obsługi”. Ten podręcznik składa się z niektórych plików HTML i JPG. Ten podręcznik jest wyświetlany w „Menu pomocy” w mojej aplikacji za pomocą JEditorPane.

Jak na razie dobrze. Działa to bardzo dobrze, jeśli uruchomię Programm z Eclipse. Gdy tylko utworzę wersję wdrożenia jako runable jar (która zostanie umieszczona w pliku .exe z launch4j), „Przeglądarka” HTML nie może wyświetlić instrukcji obsługi (brak obrazów).

Rozumiem, dlaczego tak się dzieje, ale nie mam pojęcia, jak to naprawić / obejść.

Moja aplikacja ładuje swoje zasoby (pliki właściwości, ikony itp.) Za pośrednictwem getClass (). GetResource (). Przykłady:

this.setIconImage(new ImageIcon(getClass().getResource("/images/dialog-question.png")).getImage());

stream = new BufferedInputStream(MABIUpdater.class.getResourceAsStream("/settings.properties"));

Jak powiedziałem wcześniej, działa to bardzo dobrze (uruchamianie aplikacji z poziomu Eclipse OR jako opakowanego pliku wykonywalnego lub runnable-jar).

Próbowałem więc uzyskać dostęp do moich „Podręczników” HTML w ten sposób:

File manual = new File(getClass().getResource("/manual/help.html").toURI());

jEditorPane.setPage(manual.toURI().toURL());

To naprawdę nie działa. Uruchamianie programu za pomocą Eclipse widzę podręcznik, ale z brakującymi obrazami. Uruchomienie go za pomocą jar / exe otrzymuję pustą ramkę.

Czy więc jest jakaś „sztuczka” na to, jak to osiągnąć? Myślę, że jednym z problemów jest sama strona HTML, ponieważ nie może uzyskać dostępu do połączonych obrazów w tym słoiku. Oto bardzo mały przykład pliku HTML, który nie działa (brak obrazu):

<!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>

Mam nadzieję, że mój problem jest jasny i ktoś ma pomysł;).

Edytuj: wszystkie wymagane pliki HTML i obrazy znajdują się w pliku JAR / ścieżce klas. (aby to wyjaśnić)

questionAnswers(2)

yourAnswerToTheQuestion