web-dev-qa-db-ja.com

Javaでこのcom.Sun.image.codec.jpegにアクセスするには、どのライブラリが必要ですか?

Javaで画像透かしプログラムを作成しており、以下をインポートしました。

import com.Sun.image.codec.jpeg.JPEGCodec;
import com.Sun.image.codec.jpeg.JPEGEncodeParam;
import com.Sun.image.codec.jpeg.JPEGImageEncoder;

しかし、次のようなエラーが発生します。

アクセス制限:必要なライブラリC:\Program Files\Java\jre6\lib\rt.jarの制限により、タイプJPEGCodecにアクセスできません。

誰かがこれを解決する方法を知っていますか、またはそれにアクセスするためにどのライブラリを追加する必要があり、そのライブラリをどこで見つけることができますか?

10
adrian

ここを見てください リンク

1. Open project properties.
2. Select Java Build Path node.
3. Select Libraries tab.
4. Remove JRE System Library.
5. Add Library JRE System Library.

Miladが提案したように

これは機能しますが、これは推奨されるすべてのJavaランタイムポリシーに反します。ベストプラクティスは、rt.jar(またはtools.jarなどのSunが提供する他のランタイムライブラリ)の使用を避けることです。 )

11
RanRag

これらは、JVMによってランタイム機能として使用されるjarファイルであるrt.jarにあり、プロジェクトへの依存関係として追加しないことを強くお勧めします。

理由をご覧ください ここ

あなたがやりたいことをする正しい方法は説明されています ここ

4
Milad Naseri

問題は、Sun.com.*パッケージからライブラリをインポートしていることです。 Oracleは実際には推奨していません これらのパッケージは将来のリリースで削除される可能性があるか、すべてのJVM実装で使用できるとは限らないため、これらのパッケージの使用はお勧めしません。

Sun.com.*ライブラリをインポートしようとすると、IDE(どちらを使用していますか?))がエラーを生成するように構成されている可能性があります。その場合、構成を変更すると、これらのライブラリですが、とにかく良い考えではありません。アクセス制限のないライブラリを使用して、探している機能に代わる他の方法を探す必要があります。

また、JPEGファイルの読み取りまたは書き込みを行うだけの場合は、 ImageIO クラスを参照してください。そこには、便利なメソッドがたくさんあります。

2
Óscar López

多分あなたのjreシステムライブラリは1.8です

またはEclipse:プロジェクトのプロパティ> Javaコンパイラ>エラー/警告>非推奨のAPI

エラーを無視/警告に変更

0
Sitan