webentwicklung-frage-antwort-db.com.de

Zugriffsbeschränkung: Der Zugriff ist aufgrund der Einschränkung der erforderlichen Bibliothek nicht möglich. \ Jre \ lib \ rt.jar

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

76
user567602

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:

  1. Öffnen Sie die Registerkarte Libraries des Eigenschaftsfensters des Build Path-Projekts Java.
  2. Erweitern Sie den Eintrag JRE-Systembibliothek.
  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. Setzen Sie für die neue Zugriffsregel die Auflösung auf Zugänglich und das Muster auf "com/Sun/xml/internal/**".

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

127
Alex

Hervorragende Antwort schon vor Ort hier .

Siehe die Zusammenfassung unten:

  1. Wechseln Sie zu den Einstellungen für den Erstellungspfad in den Projekteigenschaften.
  2. Entfernen Sie die JRE-Systembibliothek
  3. Fügen Sie es zurück; Wählen Sie "Bibliothek hinzufügen" und wählen Sie die JRE-Systembibliothek aus. Die Standardeinstellung hat bei mir funktioniert.
79
Abimbola

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.

41
Justin

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

15
Candra

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

Vorhandene JRE-Systembibliothek entfernen, dann Add Library -> JRE System library -> next -> ok

Fehler wird behoben.

8
Bilal Ashraf

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".

5
Val

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

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

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.

  1. Abhängigkeiten der Produktdatei,
  2. Die Abhängigkeiten von plugin.xml (und stellen Sie sicher, dass es nicht implizit mithilfe des Dialogfelds für importierte Pakete importiert wird).
  3. Die Registerkarte Konfigurations-Plug-Ins ausführen. Ausführen als ..-> Konfigurationen ausführen-> Registerkarte Plug-Ins. Deaktivieren Sie die alten Plugins und klicken Sie dann auf Erforderliche Plugins hinzufügen.

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

0
Lucas

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

0
Magno C