このエラーは奇妙なことです。 EclipseRCP 3.5.1、 Java SE 1.6アップデート16をインストールし、SWT 3.5に切り替えました。私は新しいプロジェクトを作成し、依存関係を設定してコンパイルしようとしました。次を使用し、インポートしようとした場合:Eclipse 3.5.1コンパイラエラー:必要なライブラリ../rt.jarの制限によりOutputFormat型にアクセスできません
import com.sun.org.apache.xml.internal.serialize.OutputFormat;
import com.sun.org.apache.xml.internal.serialize.XMLSerializer;
私はエラーを取得:
Access restriction: The type XMLSerializer is not accessible due to restriction on required library C:\Program Files\Java\jre6\lib\rt.jar.
私はすでにいくつかの回答を読んで、それをグーグルきた問題がまだあるhere..and。 面白いことに、以前のEclipseRCP(バージョン:3.4.2)を使用しても、この問題は発生しません。 3.4.2バージョンは同じJREバージョンを使用しており、SWTバージョンをテストしました。正常に動作します。私は問題は、新しいIDEのいくつかのプラグインに依存していると思います。何か案は?
P.S.私はこれを見つけた article。しかし、私は好きではない、またはコードを変更したい場合は、私はする必要はありません。最初に問題の原因は何か、その解決策が続きます。
はい、私は問題を回避するためにEclipse設定を認識していますが、同じ設定が古いRCPバージョンにあったため、問題はありませんでした。私は前にそれを聞いたことがありません。なぜ、そのパッケージcom.sunです。彼の使用が推奨されていない場合でも存在しますか? – hypercube
インポートの目的は、JDK1.6にXMLパーサーが組み込まれていることを理解しているので、XMLファイルを読み書きすることでした。com.sun。*は使用しないでください。 – hypercube
これはパブリックAPI(おそらくJAXBなど)によって内部的に使用されます。クラスが直接必要な場合は、代わりにApache Xerces-Jをライブラリとして追加し、org.apache.xml.serialize.OutputFormatクラスとorg.apache.xml.serialize.XMLSerializerクラスを代わりに使用する必要があります。 – jarnbjo