Frage Zugriffsbeschränkung: Aufgrund der Einschränkung der erforderlichen Bibliothek .. \ jre \ lib \ rt.jar nicht verfügbar


Ich versuche, älteren Code von vorhin zu ändern und die folgenden Arten von Fehlern zu erhalten:

Zugriffsbeschränkung: Die Methode create (JAXBRIContext, Object) vom Typ Header ist aufgrund der Einschränkung auf die erforderliche Bibliothek .. \ jre \ lib \ rt.jar nicht zugänglich

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 das bedeuten könnte und wie ich es beheben konnte, konnte aber keine klare Antwort finden. Einige Beiträge scheinen darauf hinzuweisen, dass ich einige JARs eingebaut habe, die Klassen implementieren, die jetzt als Teil der Core-Java-Distribution verfügbar sind, aber soweit ich sehen kann, enthalten keine der JARs, die ich einschließe, andere / ältere Versionen der obigen Klassen.

Kann mir jemand sagen, worum es bei diesem Fehler geht und wie ich das beheben könnte?

Danke für deine Hilfe schon im Voraus,

Olli


74
2018-02-13 19:24


Ursprung


Antworten:


Ich bin auf etwas Ähnliches gestoßen, ich denke, dass die Ursache der Warnung Eclipse ist, die versucht, Sie davon abzuhalten, das Innere zu benutzen com.sun Pakete, die als Teil Ihrer JRE-Arbeitsumgebung installiert sind, aber nicht Teil der öffentlichen Java-API sind.

Wie Justin in seiner Antwort sagt, kann das Ändern der Compilereinstellungen die Warnung verbergen. Ein feinerer Ansatz besteht darin, den Buildpfad so zu ändern, dass der Zugriff auf das betreffende Paket explizit zugelassen wird:

  1. Öffnen Sie die Registerkarte "Bibliotheken" des Java-Eigenschaftsfenster für Projekteigenschaften.
  2. Erweitern Sie den JRE-Systembibliothekseintrag.
  3. Wählen Sie "Zugriffsregeln" und klicken Sie auf die Schaltfläche Bearbeiten.
  4. Klicken Sie im daraufhin angezeigten Dialogfeld auf die Schaltfläche Hinzufügen.
  5. Legen Sie für die neue Zugriffsregel die Auflösung auf Erreichbar und das Muster auf fest "com/sun/xml/internal/**".

Nach dem Hinzufügen dieser Zugriffsregel sollte Ihr Projekt ohne diese Warnung erstellt werden.


125
2018-05-17 19:19



Ausgezeichnete Antwort bereits vor Ort zur Verfügung stellen Hier.

Siehe die Zusammenfassung unten:

  1. Wechseln Sie in den Projekteigenschaften zu den Einstellungen für den Erstellungspfad.
  2. Entfernen Sie die JRE-Systembibliothek
  3. Fügen Sie es zurück; Wählen Sie "Add Library" und wählen Sie die JRE System Library. Der Standard funktionierte für mich.

77
2017-07-10 22:54



Keine wirkliche Lösung, aber überall, wo ich nachgesehen habe, war die vorgeschlagene Lösung, Eclipse einfach zu sagen, dass das keine Fehler sind. Sie können es ändern, indem Sie auf Eigenschaften -> Java Compiler -> Fehler Warnungen -> Veraltete und restriierte APIs -> Verbotene Referenz (Zugriffsregel), ändern Sie es von Fehler zu Warnung oder Ignorieren.


41
2018-03-06 15:14



Ich habe dieses Problem mit diesen Schritten gelöst: Erweitern Sie Ihr Projekt, klicken Sie mit der rechten Maustaste auf "JRE System Library"> Eigenschaften> wählen Sie die 3. Option "Workspace default JRE"> OK. Hoffe es hilft dir auch


14
2018-01-16 10:55



In Eclipse:
Project -> properties -> java Build Path -> libraries

Entfernen Sie dann die vorhandene JRE-Systembibliothek Add Library -> JRE System library -> next -> ok

Der Fehler wird entfernt.


8
2018-04-24 21:53



Ich hatte das gleiche Problem, als mein Plugin von einem anderen Projekt abhängig war, das einige Pakete in seiner Manifest-Datei exportiert hat. Anstatt Zugangsregeln zu ändern, habe ich es geschafft, das Problem zu lösen, indem ich die erforderlichen Pakete in den Export-Paket-Bereich einfüge. Dies macht die Pakete legal sichtbar. Eclipse bietet dieses Update tatsächlich auf die Fehlermarkierung "Zugriffsbeschränkung".


5
2018-03-18 09:48



Führen Sie in der Eclipse-Umgebung, in der Sie Ihre Java-Programme ausführen, die folgenden Schritte aus:

  1. Klicken Sie auf Projekt direkt über der Menüleiste in Eclipse.
  2. Klicken Sie auf Eigenschaften.
  3. Wählen Sie Bibliotheken aus, klicken Sie auf die vorhandene Bibliothek und dann auf Entfernen auf der rechten Seite des Fensters.
  4. Wiederholen Sie den Vorgang und klicken Sie auf Bibliothek hinzufügen, wählen Sie dann die JRE-Systembibliothek und klicken Sie auf OK.

1
2017-11-30 18:28



Ich beantworte diese Frage, weil ich dieses Problem anders lösen konnte als die anderen Antworten. Ich hatte dieses Problem, als ich den Namen der Plugins, die ich exportierte, umstrukturierte. Irgendwann musste ich sicherstellen, dass ich Folgendes ändere / ändere.

  1. Die Abhängigkeiten der Produktdatei
  2. Die plugin.xml-Abhängigkeiten (und stellen Sie sicher, dass sie nicht implizit mit dem Dialog für importierte Pakete importiert werden).
  3. Die Registerkarte "Plug-Ins für die Konfigurationskonfiguration". Ausführen als ..-> Ausführen von Konfigurationen-> Plug-Ins-Registerkarte. Deaktivieren Sie die alten Plugins und klicken Sie dann auf Erforderliche Plug-ins hinzufügen.

Das hat bei mir funktioniert, aber Ihre Laufleistung kann variieren.


0
2018-04-21 15:57



Ich habe gerade die Projektfacette auf 1.7 geändert und es hat funktioniert.


0
2017-10-21 12:59