私が使用していますClassPath.getAllClasses
からGuava
、特定のインターフェイスを実装するランタイムクラスに見つけること。で使用する場合rt.jar
には、より多くのクラス見つかるsun.*
と同様のパッケージを、私はそれらをフィルタリングしたいと思います。
私は、制限されたAPIについて警告するためにEclipseと多分他のJavaコンパイラで使用されるメカニズムを再利用したいです。この情報は、JREを常駐またはEclipseにハードコーディングしていますか?
この情報は、いわゆるに格納された実行環境用の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
)。