1. トップ >
  2. 製品・サービス >
  3. biz-Stream >
  4. サポート情報 >
  5. JAI のエラーメッセージ 「Error: Could not find mediaLib accelerator wrapper classes. 」に関して

biz-Stream サポート情報

RSS

JAI のエラーメッセージ 「Error: Could not find mediaLib accelerator wrapper classes. 」に関して

2011年04月04日

biz-Streamにて画像を含む帳票を生成する際、正常に帳票出力は行われるが「Error: Could not find mediaLib accelerator wrapper classes.」というエラーログが出力されることがあります。
この原因および対応策に関して説明いたします。

1. 概要

■ 発生する現象

biz-Streamのログに下記エラー出力されるが、帳票は正常に出力される。

《 エラーログ 》
Error: Could not find mediaLib accelerator wrapper classes. Continuing in pure Java mode.
Occurs in: com.sun.media.jai.mlib.MediaLibAccessor
java.lang.NoClassDefFoundError: com/sun/medialib/mlib/Image
        at com.sun.media.jai.mlib.MediaLibAccessor$1.run(MediaLibAccessor.java:248)
        at java.security.AccessController.doPrivileged(Native Method)
        at com.sun.media.jai.mlib.MediaLibAccessor.setUseMlib(MediaLibAccessor.java:245)
        at com.sun.media.jai.mlib.MediaLibAccessor.useMlib(MediaLibAccessor.java:177)
■ 発生条件

biz-Streamにて画像が含まれる帳票を生成した場合。
※ biz-Stream v4.6.0以降の COMインターフェイス、レイアウト・デザイナ、Webサービスサーバでは発生しません。

■ 発生原因

biz-Streamが画像処理を行う際に使用しているライブラリJava Advanced Imaging API(以下JAI)のネイティブライブラリ※1が存在しないため、JAIがエラーメッセージを出力。

※1 ネイティブライブラリ: Java以外の言語で作成された、プラットフォーム(OS等)に依存するライブラリ。

以下、「発生条件」「発生原因」「対応策」に関して詳細説明します

2. 発生条件: biz-Streamでの画像使用

biz-Streamでは、画像ファイルを処理する方法として、Javaに含まれるAbstract Window Toolkit(以下 AWT)、より高度な処理を行えるJAI(Java Advanced Imaging API)、Java Image I/Oライブラリを使用しています。

今回のエラーが発生するのはJAIライブラリを使用した場合です。
biz-Streamで使用可能な画像出力機能のうち、以下の要素でJAIを使用します。

《 表1. biz-StreamでJAIを使用する画像出力機能 》
JAIの使用 機能 要素名・タグ 説明
設定により使用 イメージ <Image> 画像の処理および出力。
AWT 又はJAI ライブラリ を使用。
Format属性により内部処理で使用する画像処理ライブラリを切り替え。
Format属性に「rgb」を設定した場合はAWTライブラリを使用し、「cmyk」を設定した場合はJAIライブラリを使用
リンク付きイメージ <LinkImage>
使用 白黒2値イメージ <MonochromeImage> モノクロ画像として処理。JAIライブラリを使用。

リンク付きイメージ<LinkImage>は画像をクリックした際に設定した URI リンク先に接続する機能のほかはイメージ<Image>と同等の機能です。

biz-Stream レイアウトデザイナでのFormat属性設定

《 図1. biz-Stream レイアウトデザイナでのFormat属性設定 》

白黒2値イメージ<MonochromeImage>は、画像をPDFやExcelファイルに埋め込む際にモノクロとして処理することでPDFファイル生成時のメモリ消費を抑えパフォーマンスアップを図ります。カラーやグレースケールの画像でもモノクロに変換しますので、図面などを取り込む際に適しています。この白黒2値イメージ<MonochromeImage>の内部処理ではJAIライブラリを使用します。

JAIおよびAWTライブラリにより対応できる画像ファイル形式は下表のようになります。

《 表2. biz-Streamで使用可能な画像出力機能および使用するライブラリ 》
画像のファイル形式 カラーパレット 圧縮 画像処理ライブラリ
AWT
「rgb」
JAI
「cmyk」
GIF
透過GIF ×
JPEG※1 グレースケール ベースライン / プログレッシブ ×
RGB ベースライン / プログレッシブ
CMYK ベースライン / プログレッシブ ×
BMP※2 ×
PNG※2
TIFF モノクローム 非圧縮 / LZW / PackBit ×
JPEG × ×
CCITT 1D / Group 3 Fax / Group 4 Fax ×
グレースケール 非圧縮 / LZW / PackBit / JPEG × ×
RGB 非圧縮 / LZW / PackBit / JPEG ×

※1 ロスレス圧縮は非対応
※2 非圧縮、または、8bitRLE 圧縮に限る。また、αチャンネルは非対応

上記のようにイメージ<Image>とリンク付きイメージ<LinkImage>の場合はFormat属性を「cmyk」に設定、または白黒2値イメージ<MonochromeImage>を使用した場合にJAIライブラリを使用、つまり以下のエラーが発生する可能性があります。

《 エラーログ 》
Error: Could not find mediaLib accelerator wrapper classes. Continuing in pure Java mode.

3. 発生原因: JAIのネイティブライブラリ

JAIのライブラリ構成およびbiz-Streamに同梱するJAIのファイルは以下です。

《 表3. JAIライブラリ構成及びbiz-Stream同梱ファイル 》
必須・任意 ファイル biz-Stream
に同梱
必須 jai_core.jar、jai_codec.jar 同梱
任意 mlibwrapper_jai.jar (ネイティブライブラリを呼び出すためのラッパクラスライブラリ) 未同梱
mlib_jai.dll 等 (Windows 環境用のネイティブライブラリ)
libmlib_jai.so 等 (Linux,Solaris環境用のネイティブライブラリ)
未同梱

表題にあるエラーは、「mediaLib accelerator wrapper classes」すなわちmlibwrapper_jai.jarが存在しないため出力されています。
この際、JAIライブラリとしてはエラーのメッセージを出力しますが、画像ファイルの処理は、ネイティブライブラリを使用せず、Pure Javaライブラリにて処理を行うため、正常にPDFやExcelファイルを生成します。

4. 対応策

エラーメッセージを出力しないようにするには、以下の2つ対策のうちのいずれかを実施してください。

【対応策1】 JAIライブラリを使用せず、AWTライブラリを使用

JAIライブラリを使用せずに、AWTライブラリを利用することによりメッセージが出力しなくなります。
但し以下の条件を全て満たす場合のみAWTライブラリが使用可能です。

  • イメージ<Image>またはリンク付きイメージ<LinkImage>を使用。白黒2値イメージ<MonochromeImage>は使用していない場合。
  • 上記 《表2.》 でAWTに対応している画像ファイル形式を利用している場合。
  • UNIX/Linux環境で使用する場合はX Window環境が動作している

設定の変更は上記 《図1.》のようにFormat属性を「cmyk」から「rgb」に変更します。

【対応策2】 JAIライブラリを使用、かつPure Javaライブラリを使用

Javaのプロパティ設定にて「com.sun.media.jai.disableMediaLib」を「true」と明示的に設定することにより、ネイティブライブラリを利用することを試みずに直接 Pure Javaライブラリを利用することができます。

以下のように、Javaのコマンドライン、アプリケーションサーバのプロパティ設定などで設定してください。

《 Java のプロパティ設定例 》
java -Dcom.sun.media.jai.disableMediaLib=true 

※ なお、JAI のネイティブライブラリをインストールすることは biz-Stream の構成が変更されることになるため、推奨いたしません。

5. biz-Stream での一部対応について

biz-Stream v4.6.0 の 以下の機能では【対応策2】をモジュール側で設定するよう変更しました。よって biz-Stream v4.6.0 以降の下記機能では、本件エラーログは出力されません。

  • COM インターフェイス
  • レイアウト・デザイナ
  • Web サービスサーバ

6. 関連情報

■ JAI ライブラリに関する情報
■ biz-Streamサポート情報の関連ページ