web-dev-qa-db-ja.com

Eclipseがjfxrt.jarクラスのアクセス制限について警告を表示する

Java SE 1.8 jdkシステムライブラリでEclipse keplerを使用していますが、javafxクラスまたはメソッドを使用すると、EclipseはAccess restriction: The type 'TableColumn<?,?>' is not API (restriction on required library 'C:\Program Files\Java\jdk1.8.0_05\jre\lib\ext\jfxrt.jar')のような警告を出します。

ワイルドカード_*_を使用してライブラリ内のすべてのjarへのアクセスを許可するためにシステムライブラリにアクセスルールを追加しようとしましたが、警告はまだ残っています。プロジェクトの構築にもMavenを使用しています。コードは機能しますが、警告はしつこく、コードを書くときに読みやすさに影響しています。どんな助けでもありがたいです。

編集:私はまた、クラスの最初に@SuppressWarnings("restriction")を追加しようとしましたが、これはまだ不明な原因を解決せず、私が見る必要のある他のすべての制限警告を隠しています

次の設定でignoreを選択できます。

_Windows -> Preferences -> Java -> Compiler -> Errors/Warnings
(Project) Properties -> Java Compiler -> Errors/Warnings
_

フィルターを使用して_"Forbidden reference"_を検索します

Forbidden reference (access rules):「ignore」に変更します

enter image description here

4
ltalhouarne

Javaライブラリを再構成することでこれを回避できます。たとえば、Oracle JDKを明示的に選択するとうまくいきます。

Configure Build Path

Edit Java lib

Select explicit JDK

31
Hollis Waite

簡単な方法は、e(fx)clipse-JavaFXをサポートするEclipseのプラグインをインストールすることです。

  1. ヘルプ->新しいソフトウェアのインストールを選択します
  2. [追加]ボタンをクリックして、次のサイトを追加します:
  3. OKをクリックします
  4. 「Work with」ドロップダウンリストで、最近追加されたサイト「efxclipse」を選択します
  5. チェックボックス「e(fx)clipse-install」をチェックして、この選択のすべてのコンポーネントをインストールします
  6. 次の手順に進んで、インストールを完了してください
  7. Eclipseを再起動します。それでもJavaFXライブラリが認識されない場合は、再起動してください。

元の情報はここにあります: https://www.Eclipse.org/efxclipse/install.html#for-the-lazy

7
Thach Van

アクセスルールを追加して、javafx/**へのアクセスを許可します。

この回答もご覧ください: https://stackoverflow.com/a/32062263/106035

私の知る限り、これはEclipseのバグだと思います。これをEclipseでグローバルに構成する方法も見つかりませんでしたが、すべてのプロジェクトでこれをやり直す必要があります。

プロジェクト設定、ビルドパス、ライブラリ、JREに移動します。通常は「ルールが定義されていない」はずの「アクセスルール」をクリックします。新しいルール「Accessible」を追加し、パターン「javafx/**」を入力します。

これはEclipseにJavaコンパイラーにjavafx.*が使用を許可されている公式のAPIであることを伝えるため、警告は表示されません。

明らかに、javafxへのアクセスのみを許可する方が、警告を無視するよりもはるかに優れています。

*が機能しなかったのは、ワイルドカードの定義を読んでいないためです。アクセスルールでは、*は一度だけ一致します。どの深さでも一致するには**が必要です。つまり*javafx.SomeClassへのアクセスを許可しますが、javafx.scene.SomeClassへのアクセスは許可しません...

3
Anony-Mousse

javafxのアクセスルールを追加します。

プロジェクトを右クリック>プロパティ> Javaビルドパス>ライブラリタブ、次に:

  • JREシステムライブラリを展開
  • [アクセスルール]を選択し、Edit...ボタンをクリックします
  • Add...をクリックします
  • 解像度を選択:Accessible
  • ルールパターンを設定:javafx/**
  • OKをクリックします
  • OKをクリックします

add access to lib for jfxrt

2
broc.seib