Ich versuche, älteren Code zu ändern und erhalte die folgenden Fehlermeldungen:
Zugriffsbeschränkung: Auf die Methode create (JAXBRIContext, Object) vom Typ Headers kann aufgrund der Einschränkung der erforderlichen Bibliothek ..\jre\lib\rt.jar nicht zugegriffen werden
für diese Importanweisungen:
import com.Sun.xml.internal.bind.api.JAXBRIContext;
import com.Sun.xml.internal.ws.api.message.Header;
import com.Sun.xml.internal.ws.api.message.Headers;
import com.Sun.xml.internal.ws.developer.WSBindingProvider;
Ich habe gesucht, was dies bedeuten könnte und wie es behoben werden kann, konnte jedoch keine eindeutige Antwort finden. Einige Posts scheinen darauf hinzudeuten, dass ich einige JARs enthalten habe, die Klassen implementieren, die jetzt als Teil der Kerndistribution Java=) verfügbar sind, aber soweit ich sehen kann, enthält keine der JARs, die ich einbeziehe, andere/ältere Versionen der oben genannten Klassen.
Kann mir jemand sagen, worum es bei diesem Fehler geht und wie ich ihn beheben kann?
Vielen Dank für Ihre Hilfe bereits im Voraus,
Olli
Ich bin auf etwas Ähnliches gestoßen. Ich denke, die Ursache für die Warnung ist, dass Eclipse versucht, Sie von der Verwendung der internen com.Sun
- Pakete abzuhalten, die als Teil Ihrer JRE für den Arbeitsbereich installiert sind, aber nicht Teil der Öffentlichkeit sind Java API.
Wie Justin in seiner Antwort sagt, kann das Ändern Ihrer Compiler-Einstellungen die Warnung verbergen. Ein differenzierterer Ansatz besteht darin, den Erstellungspfad so zu ändern, dass der Zugriff auf das betreffende Paket explizit zugelassen wird:
"com/Sun/xml/internal/**"
.Nach dem Hinzufügen dieser Zugriffsregel sollte Ihr Projekt ohne diese Warnung erstellt werden.
Hervorragende Antwort schon vor Ort hier .
Siehe die Zusammenfassung unten:
Keine echte Lösung, aber überall, wo ich nachgesehen habe, bestand die vorgeschlagene Lösung darin, Eclipse einfach mitzuteilen, dass dies keine Fehler sind. Sie können es ändern, indem Sie zu Eigenschaften -> Java Compiler -> Fehlerwarnungen -> Veraltete und eingeschränkte APIs -> Verbotene Referenz (Zugriffsregel) wechseln. Ändern Sie es von Fehler in Warnung oder ignorieren.
ich habe dieses Problem mit den folgenden Schritten gelöst: Erweitern Sie Ihr Projekt, klicken Sie mit der rechten Maustaste auf "JRE-Systembibliothek"> "Eigenschaften" und wählen Sie die dritte Option "Workspace-Standard-JRE"> "OK". Hoffe es hilft dir auch
In Eclipse:Project -> properties -> Java Build Path -> libraries
Vorhandene JRE-Systembibliothek entfernen, dann Add Library -> JRE System library -> next -> ok
Fehler wird behoben.
Ich hatte das gleiche Problem, als mein Plugin von einem anderen Projekt abhängig war, das einige Pakete in seiner Manifest-Datei exportierte. Anstatt die Zugriffsregeln zu ändern, habe ich es geschafft, das Problem zu lösen, indem ich die erforderlichen Pakete in den Abschnitt Export-Package aufgenommen habe. Dies macht die Pakete legal sichtbar. Eclipse bietet diese Korrektur für die Fehlermarkierung "Zugriffsbeschränkung".
Führen Sie in der Eclipse-Umgebung, in der Sie Ihre Java) - Programme ausführen, die folgenden Schritte aus:
Ich beantworte diese Frage, weil ich dieses Problem auf eine andere Weise behoben habe als die anderen Antworten. Ich hatte dieses Problem, als ich den Namen der Plugins, die ich exportierte, überarbeitete. Irgendwann musste ich Folgendes korrigieren/ändern.
Das hat bei mir funktioniert, aber Ihre Laufleistung kann variieren.
Ich habe gerade die Projektfacette auf 1.7 geändert und es hat funktioniert.