質問: rt.jarでは一部クラスについてアクセスが制限されていると思います。 eclipseではアクセス・ルールを追加することで制限を解除(?)出来ます。 (参考:) eclipseではなくlinuxでantを使用してコンパイルしようとしたときに、 rt.jarには含まれる(解凍したらそのクラス、パッケージは存在する)のに、 「存在しません」とコンパイルエラーが発生します。 これは制限によるものなのでしょうか、それとも制限自体はeclipseによるもので、 eclipse以外でコンパイルするのには問題がなく他の原因が考えられるのでしょうか。 -----追記 該当のクラスは com.sun.xml.internal.messaging.saaj.util.ByteOutputStream になります。 エラーとしてはパッケージ com.sun.xml.internal.messaging.saaj.util は存在しません。 が出力されます。
回答: ビルドパスの構成から、JREシステムライブラリを一度削除し、再び追加し直すとコンパイル出来る場合があるようです。 ただ、com.sunのパッケージは、そもそも利用すべきではないです。とうにサポート外で、コンパイラも実行環境も正しく機能することを保証していません。 eclipseがアクセス制限するには理由があってのことです。 代替となるものが、必ず用意されてるはずですよ。