どのようにEclipseははcom.sunが制限されたAPIであることを知っていますか?

たらい :

私が使用していますClassPath.getAllClassesからGuava、特定のインターフェイスを実装するランタイムクラスに見つけること。で使用する場合rt.jarには、より多くのクラス見つかるsun.*と同様のパッケージを、私はそれらをフィルタリングしたいと思います。

私は、制限されたAPIについて警告するためにEclipseと多分他のJavaコンパイラで使用されるメカニズムを再利用したいです。この情報は、JREを常駐またはEclipseにハードコーディングしていますか?

howlger:

この情報は、いわゆるに格納された実行環境用のEclipseの内部プロファイル

これらのプロファイルは、(参照、もともとのOSGiの事なのでBundle-RequiredExecutionEnvironment)、プロファイルがに保存されているorg.eclipse.osgiでプラグイン/バンドル*.profileそれぞれがアクセス可能パッケージ(のホワイトリストが含まれていることを、ファイルorg.osgi.framework.system.packagesのために例えばここで、) JavaSE-1.8

新しいJavaプロジェクトを作成する場合は、どちらかを選択することができます

  • 実行環境JREあなたに与え、アクセス制限等の輸入のためのエラーをsun.*パッケージか
  • 任意のアクセス制限のない特定のJRE JREパッケージへ

プロジェクト作成後に選ばれたJREを変更することができますJavaのビルド・パス:[プロジェクト]> [プロパティ ]タブの、ライブラリは、 JREを選択してクリックして、[編集]を...

また、以来、JavaプラットフォームのモジュールシステムのJava 9で導入され、JRE自体はいくつかのパッケージへのアクセスを制限する(し、代わりにファイルのrt.jarファイルがありますmodules)。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=202383&siteId=1