2017-08-14 4 views
0

私はアプリケーション用のプラグインを開発しました。私は私が使用する必要があると推測していますので、このクラスは、プラグインのjarファイルでパッケージ化されたことを確認したjarにパッケージ化されたライブラリからクラスにアクセスする

java.lang.NoClassDefFoundError: com/sun/media/imageioimpl/plugins/tiff/TIFFImageWriterSpi 

:このプラグインは、いくつかのライブラリのプラグインは私が取得アプリケーションから呼び出され

を含みこのクラスにアクセスするプラグインjarのクラスローダーのいくつかの並べ替え - しかし、どのようにするかわからない。任意のヘルプや再方向を感謝します。

答えて

1

ます実行時に必要なクラスをロードできるように、アプリケーションにプラグインjarがある場所を知らせる必要があります。これを行うには、アプリケーションjarのMETA-INF/MANIFESTファイルで、プラグインjarを参照するClass-Pathエントリを指定します。

Class-Path: plugin-jar-name1 plugin-jar-name2 
+0

ありがとうございます - 私はMavenを使用しています - これを trueで追加する必要がありますか? – skyman

+0

はい、shoulldは – Roshith

+0

を実行します。これはパスを追加しますが、これはメインアプリケーションによって呼び出されるプラグインjarにありますが、まだ問題があるようです - マニフェストのクラスパスが関連する場合のみ可能です瓶のメインクラスですか? – skyman

0

あなたはpom.xmlcom.sun.media:jai_imageio:1.1依存関係を追加する必要があります。あなたは依存関係belwoを見つけることができます。

<dependency> 
    <groupId>com.sun.media</groupId> 
    <artifactId>jai_imageio</artifactId> 
    <version>1.1</version> 
</dependency> 

あなたは、あなたがリンクの下からjai_imageio.jar jarファイルをダウンロードしてlibディレクトリに入れてビルド・パスに追加する必要があり、単純なプロジェクトを使用している場合:

http://www.java2s.com/Code/Jar/j/Downloadjaiimageiojar.htm

関連する問題