Java
Eclipse
JavaFX

Eclipseで、アクセス制限: The type '?' is not API(? ex: JavaFX)と出た時の対処法まとめ

はじめに

JavaFXを利用しようとした時に、以下のようなエラーが出てしまった。
「アクセス制限: The type '?' is not API」(省略)
鬱陶しいので対策を講じることとした。(記事はJavaFXでのこと中心です)
※検索結果をまとめたまでのものです。

対策方法

ビルド・パスの構成を変える (積極的,根本的,たぶんいちばん楽な対処法)

理由はわからないけどなぜか直る。
1. プロジェクトを選択し右クリックをして、「ビルド・パス」→「ビルド・パスの構成」
2. 「JRE システム・ライブラリー」を選択した状態で、右側の「編集」
3. 表示された画面のラジオボタンで、「代替JRE」を選択(プルダウンで適切なものを選択,
JDKの方が望ましい, ex: jdk1.8.0_121)
4. 「完了」, 「適応して閉じる」

注意: もしもプルダウンに何も表示されていないのならば、自分でJDKを設定しなければならない。
1. 画面上部より、「ウィンドウ」→「設定」
2. 表示された画面より、「Java」→「インストール済みのJRE」
3. 画面左の「追加」
4. 「標準 VM」を選択し、「次へ」
5. 「JRE ホーム」: JREのホームディレクトリを入力する。
6. 「JRE 名」: 任意の名前を入力する。
7. 「デフォルトのVM 引数」: 空欄でよい。
8. 「完了」, 「適応して閉じる」

アクセス許可を行う (積極的,根本的対処法)

JavaFXなどの基本APIとしてEclipseで扱われないAPIは自分でアクセス許可を行う必要があるようだ。
以下の方法を取ることで、アクセス可能APIとして扱われるようにする。しかし、プロジェクト毎にしか指定できない。
1. プロジェクトを選択し右クリックをして、「ビルド・パス」→「ビルド・パスの構成」
2. 「JRE システム・ライブラリー」の左の△→「アクセス・ルール」
3. 選択した状態で、右側の「編集」
4. 「追加」
5. 「レゾリューション」: 「アクセス可能」を選択し、「ルール・パターン」: 「?/**」(?は目的のAPI, 入力例: 「javafx/**」)
6. 「OK」, 「OK」
7. 「適応して閉じる」

参考元: https://stackoverflow.com/a/32062263

警告を消す (消極的,表面的対処法)

ただ警告を非表示にするだけで好きじゃない。しかし、一括で消えるという利点がある。
1. 画面上部より、「ウィンドウ」→「設定」
2. 表示された画面より、「Java」→「コンパイラー」→「エラー/警告」
3. 同様に、「使用すべきでない制限された API」→「禁止された参照 (アクセス・ルール)」の設定を、「無視」に変更。
4. 画面下より、「適応して閉じる」
5. 「フル・ビルドを行うか」を尋ねられるので、「はい」

参考元:
https://blogs.osdn.jp/2016/04/02/JavaFX.html
https://blogs.yahoo.co.jp/dk521123/34073566.html
http://informationstudent.blog.fc2.com/blog-entry-20.html