QJAI のエラーメッセージ 「Error: Could not find mediaLib accelerator wrapper classes. 」に関して
A回答
biz-Stream v4 にて画像を含む帳票を生成する際、正常に帳票出力は行われるが「Error: Could not find mediaLib accelerator wrapper classes.」というエラーログが出力されることがあります。
この原因および対応策に関して説明いたします。
1. 概要
■ 発生する現象
biz-Stream v4 のログに下記エラー出力されるが、帳票は正常に出力される。
《 エラーログ 》
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 v4 が画像処理を行う際に使用しているライブラリJava Advanced Imaging API(以下JAI)のネイティブライブラリ※1が存在しないため、JAIがエラーメッセージを出力。
※1 ネイティブライブラリ: Java以外の言語で作成された、プラットフォーム(OS等)に依存するライブラリ。
以下、「発生条件」「発生原因」「対応策」に関して詳細説明します。
2. 発生条件: biz-Streamでの画像使用
biz-Stream v4 では、画像ファイルを処理する方法として、
- Javaに含まれるAbstract Window Toolkit(以下 AWT)
- より高度な処理を行えるJAI(Java Advanced Imaging API)
- Java Image I/Oライブラリ
を使用しています。
今回のエラーが発生するのはJAIライブラリを使用した場合です。
biz-Stream v5 では JAIライブラリを使用しておらず、ACIライブラリを使用しているため今回のエラーは発生しません。
biz-Streamで使用可能な画像出力機能のうち、以下の要素でJAIを使用します。
JAIの使用 | 機能 | 要素名・タグ | 説明 |
---|---|---|---|
設定により使用 | イメージ | <Image> | 画像の処理および出力。 AWT 又はJAI ライブラリ を使用。 Format属性により内部処理で使用する画像処理ライブラリを切り替え。 Format属性に「rgb」を設定した場合はAWTライブラリを使用し、「cmyk」を設定した場合はJAIライブラリを使用。 |
リンク付きイメージ | <LinkImage> | ||
使用 | 白黒2値イメージ | <MonochromeImage> | モノクロ画像として処理。JAIライブラリを使用。 |
リンク付きイメージ<LinkImage>は画像をクリックした際に設定した URI リンク先に接続する機能のほかはイメージ<Image>と同等の機能です。

《 図1. biz-Stream レイアウトデザイナでのFormat属性設定 》
白黒2値イメージ<MonochromeImage>は、画像をPDFやExcelファイルに埋め込む際にモノクロとして処理することでPDFファイル生成時のメモリ消費を抑えパフォーマンスアップを図ります。カラーやグレースケールの画像でもモノクロに変換しますので、図面などを取り込む際に適しています。この白黒2値イメージ<MonochromeImage>の内部処理ではJAIライブラリを使用します。
JAIおよびAWTライブラリにより対応できる画像ファイル形式は下表のようになります。
画像のファイル形式 | カラーパレット | 圧縮 | 画像処理ライブラリ | |
---|---|---|---|---|
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のファイルは以下です。
必須・任意 | ファイル | 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 サービスサーバ
- 製品概要
- レイアウト・デザイナ ガイド
- レイアウト・デザイナ for Excel ガイド
- XMLドキュメントレイアウトタグ リファレンス
- XMLページレイアウトタグ リファレンス
- レイアウトサンプル
- テンプレート
- ライブラリ共通ガイド
- PDF出力ガイド
- Excel出力ガイド
- CSV出力ガイド
- javadoc - Javaライブラリ apidoc
- ダイレクト印刷ガイド
- バッチ印刷ガイド
- ヘルスチェッカーガイド
- Webサービスサーバ ガイド
- クラウドストレージ出力
- javadoc - soap apidoc (コンテンツ生成)
- javadoc - soap apidoc (コンテンツ管理)
- アプリケーションサンプル