私はJAI Image I/Oを追加してTIFFイメージフォーマットをサポートするJavaプログラムを持っています。正常に動作している何JAIイメージI/Oパッケージをインストールする必要があります。 https://java.net/projects/jai-imageio/
A)
このプログラムはEclipse環境で完全に実行され、このコードを印刷クラス名(私はそれが本当すなわちTIFF画像を担当する1)とリターンであると仮定作家が登録されています
System.out.println(TIFFImageWriterSpi.class);
ImageIO.scanForPlugins();
Iterator<ImageWriter> it = ImageIO.getImageWritersByFormatName("tiff");
System.out.println(it.hasNext());
A)私の問題
I は、gradleを使用してプロジェクトをパックしました。残念ながら
com\github\jaiimageio\impl\plugins\tiff\TIFFImageWriter.class
com\github\jaiimageio\impl\plugins\tiff\TIFFImageWriterSpi.class
実行したときに、それはImageIOでを使用してレジスタTIFF作家に失敗した。すなわち、それは同じコード、it.hasNext()は、falseを返し:結果のJARは、TIFFの処理を担当するクラスが含まれています.scanForPlugins(); * 、これも、この例外がスローされたのbecasue:
Need to install JAI Image I/O package. https://java.net/projects/jai-imageio/
もののJAIイメージI/Oは、このコードを使用してクラスパス(そうでなければ、Eclipseの実行が失敗する)
他の画像フォーマットに比べてTIFFを選択するのはなぜでしょうか? – kevto
'ImageIO.scanForPlugins()'は、 'ServiceLoader'とJARファイル[Service Provider](http://docs.oracle.com/javase/7/docs/technotes/guides/jar/)を使用して、クラスパス上のプラグインをスキャンします。 jar.html#Service_Provider)メカニズムコンパイルされたクラスを持つだけでは不十分です。 JARに適切なサービスプロバイダの設定ファイル(つまり、 '/ META-INF/services/javax.imageio.spi.ImageWriterSpi')もありますか?もしそうなら、 'com.github.jaiimageio.impl.plugins.tiff.TIFFImageWriterSpi'という行が入っていますか? – haraldK