私は今、ややブロックされています: 私は、独自の「ユーザーマニュアル」を持つ非常に複雑な Java デスクトップアプリ (アプレット/Web アプリではありません!) を作成しました。このマニュアルは、一部の HTML ファイルと JPG ファイルで構成されています。このマニュアルは、JEditorPane を使用してアプリケーション内の「ヘルプ メニュー」に表示されます。
ここまでは順調ですね。これは、Eclipse で Programm を起動する限り、非常にうまく機能します。デプロイ バージョンを実行可能な jar (launch4j で .exe にラップされる) として作成するとすぐに、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 経由で起動すると、空のフレームが表示されます。
これを達成する方法に「トリック」はありますか?そのjar内のリンクされた画像にアクセスできないため、1つの問題は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 ファイル/クラスパスにあります。(これを明確にするためだけに)