Ich benutze Eclipse Oxygen 4.7.0 in Ubuntu 17.04 mit Oracle JDK 8u144.Zugriffsbeschränkung für JavaFX-Klassen in Eclipse Oxygen
Beliebiger Code, der sich auf JavaFX-Klassen in Paketen javafx.*
, z. javafx.application.Application
ist (fälschlicherweise) als Fehler gemeldet
Access restriction: The type 'ScrollPane' is not API (restriction on required library '/opt/jdk1.8.0_144/jre/lib/ext/jfxrt.jar')
Dies scheint auf die "Java System Library" JavaSE-1.8 bezogen werden. Die jfxrt.jar
hat "Zugriffsregeln", die Sie unter Eigenschaften -> Java Build Path anzeigen können, diese erlauben nur javax/, java/, org.w3c. * Usw., von denen keine sogar in der jfxrt.jar
sind.
Ich kann dieses Problem umgehen auf zwei verschiedene Arten
- Einstellungen ändern -> Java -> Compiler -> Fehler und Warnungen -> Veralten und Restricted API -> Verbotene Referenz (Zugriffsregeln) nicht sein ein Error.
- Manuelles Ändern der Systembibliothek aus "JavaSE-1.8" auf "Workspace Standard-JRE" über Eigenschaften -> Java Build Path -> JRE System Library -> Edit
Keines dieser Verfahren ist ideal, da ich eine große Anzahl von Eclipse-Projekten zu optimieren, und würde es vorziehen, die verbotenen Referenz-Checks zu ermöglichen, echte Fehler zu fangen.
Beachten Sie, dass dies auch ein Problem beim Importieren von Projekten über das in Eclipse enthaltene standardmäßige Gradle-Import-Plugin ist.
Gibt es auf jeden Fall, um dieses Problem zu vermeiden, vielleicht über Gradle-Konfiguration, oder ist ein bekannter Bug/Feature, die behoben werden?
Einige mögliche Lösungen werden hier diskutiert: https://bugs.eclipse.org/bugs/show_bug.cgi?id=431067 – ksnortum