web-dev-qa-db-ja.com

javadocsに画像を含める

私は視覚的なサンプルテストケースをたくさん扱っています。それらをmy Javaソースに含め、Javadocでリンクする便利な方法はありますか?そうすれば、my IDEは、コーディング中にそれらを自動的に表示できます(javadocを呼び出すことによって) IDEのレンダラー機能?)

Java sourceで、<img>を使用して画像を配置しようとしましたが、取得できません(pngを使用しました)。

(注-この場合、私のテストソースにあります)

27
ianpojman

ソースを表示しなかったので、私はガラス玉の推測しかできません...

ドキュメント化の目的で必要なファイルについては、パッケージディレクトリのdoc-filesという名前のサブディレクトリに配置する必要があります。これらは、Javadocによって出力ディレクトリに単純にコピーされます。次に、<img>要素で相対パスを使用します。

IDEのJavadocレンダラーが同じことをするかどうかはわかりませんが、試してみる価値はあります。

20
Paŭlo Ebermann

少し遠いですが、Base64に変換することで、ドキュメント内の画像をインライン化できます。次のようになります。

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIA..." />

変換を行うために利用できるオンラインツールがあります:

31
Emmanuel Bourg

Eclipse Lunaを使用すると、次のことがうまくいきます。

  • com
    • 会社
      • somepackage
        • doc-files
          • image.png
        • Test.Java

Test.Javaのjavadocにあります。

/**
 * <img src="./doc-files/image.png" />
 */

また、Eclipseは、ポップアップヘルプ、マウスをホバーしたとき、およびJavadocビューの両方に画像を表示します。

style="width: 100%;"imgタグに追加して、画像をビュー/ポップアップサイズに調整することもできます。

9

ここでMavenビルドを想定してPaŭloの答えを少し拡張すると、javadocツールを実行してもよいという条件でJDK-8(より厳密なHTML検証)で機能しました。

残念ながら、NetbeansではIDEのjavadocポップアップに画像が表示されないので、開いたばかりです このnetbeansのバグ

これがcom.foo.File.Javaのjavadocの一部であると想定します(w3schoolsごとの正しい方法であるimg終了タグがないことに注意してください)。

<img src="doc-files/foo.png" alt="Foo">

Mavenディレクトリ構造には、次の画像があります:src/main/javadoc/com/foo/doc-files/foo.png

そして最後に、pom.xmlで(注意 docfilessubdirs がtrueに設定されています):

<build>
    <plugins>
        <plugin>
            <groupId>org.Apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <version>2.10.3</version>
            <configuration>
                <docfilessubdirs>true</docfilessubdirs>
            </configuration>
        </plugin>
        ...
3
Jason

この方法を試してください

/**
 * @author KamyninSA
 * @version 1
 * <p><b>Description</b></p>
 * <p><img src="{@docRoot}/../src/test/resources/doc-files/ads.png" alt="alternative directory"></p>
 * */

アイコンのプレビューを表示したかったので、この質問に出くわしました。答えを読んだ後、まだ満足できず、自分で試してみました。それは私が今得たものです:

     /**
     * <img src="../../../../../../resources/com/my/project/client/images/myImage.png"><br>
     * Icon for myImage.
     *
     * @return the icon
     */

このように、実際の画像が置かれているフォルダに移動するだけで、以前より多くの画像を管理する必要はありません。

1
BAERUS

上記のVsevolodGolovanovとPauloEbermannの回答を少し拡張するために、具体的な例と詳細を示します。

Javadocのドキュメントには次のように記載されています。

未処理のファイルを含めるには、それらをdoc-filesというディレクトリに配置します。このディレクトリは、ソースファイルを含む任意のパッケージディレクトリのサブディレクトリにすることができます。

そのフォルダに画像ファイルを配置すると、生成されたHTMLからの相対パスを介してJavadocHTMLファイルで利用できるようになります。

したがって、プロジェクトに名前が付けられている場合 私のプロジェクト Javadocの解説を追加するクラスは org.foo.app.MyApp、のソースフォルダ MyProject/src/org/foo/app/MyApp.Java 含めたい MyImage.jpg Javadocでは、次のようになります。

フォルダを作成します MyProject/src/org/foo/app/doc-files、画像ファイルをその中に配置します。

その時点で、Javadocテキストはそれを参照できます。

<img src="doc-files/MyImage.jpg" width="500" alt="description of MyImage">

また、Javadocで生成されたHTMLは、それに応じてコーディングされて反映されます。

画像の拡大縮小を可能にする「width」属性に注意してください。高さは比例してスケーリングされます。

Javadocを実行すると、 doc-ファイル フォルダはすべてJavadoc出力フォルダにコピーされ、その中のリソースはHTMLで使用できるようになります。

0
Roger Neyman