844 Stimmen

Zugriffsbeschränkung auf die Klasse aufgrund einer Beschränkung der erforderlichen Bibliothek rt.jar?

Ich versuche zu kompilieren Java 1.4 Code, der erstellt wurde von IBM's WSDL2Java auf Java5 ohne die Stubs neu zu erstellen und sah diesen Fehler in Eclipse .
Ich gehe davon aus, dass die generierten Stubs einfach kompiliert werden sollten, solange die Laufzeit jars verfügbar sind (sind sie).

Access restriction: The type QName is not accessible due to restriction on required library C:\Program Files\Java\jdk1.5.0_16\jre\lib\rt.jar

Der vollständige Name der Klasse lautet javax.xml.namespace.QName

Was genau ist hier los? Ist dies ein Fall, in dem ich versuche, ein Schwein aus Wurst zu refaktorieren? Bin ich besser dran, wenn ich die Stubs neu erstelle?

1 Stimmen

Ich verstehe es nicht, warum Sie nicht einfach kompilieren es irgendwo anders und führen Sie es in Sie gezielte (so ich denke) 1.4 Umgebung?

0 Stimmen

Die letztendliche Zielumgebung ist jboss4.2 auf jdk5.

2 Stimmen

Über den "geschützten" Status: In StackOverflow sagt nichts so viel "Danke" oder "Ich auch" wie ein Upvote ;)

14voto

Mayur Punkte 141
  • Gehen Sie zu den Einstellungen für den Build-Pfad in den Projekteigenschaften. Windows -> Preferences -> Java Compiler
  • Entfernen Sie die JRE-Systembibliothek
  • Eine weitere JRE mit einer "perfekten Übereinstimmung" hinzufügen
  • säubern und Ihr Projekt neu aufbauen. Bei mir hat es funktioniert.

13voto

Dorus Punkte 6706

Ich hatte dieses Problem auch gerade. Offenbar hatte ich die JRE auf 1.5 statt 1.6 in meinem Build-Pfad eingestellt.

1 Stimmen

Ich habe das gleiche Problem. In meinem Fall mit Maven, die standardmäßig auf 1.5, wenn nicht spezifiziert.

0 Stimmen

Denken Sie daran, dies in Ihr POM aufzunehmen, damit es sich bei einer Aktualisierung nicht wieder ändert. <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties>

9voto

modulitos Punkte 12535

Zusätzlich zu Die Lösung von Nels Beckman habe ich die folgenden Tipps:

Unter Build-Pfad konfigurieren musste ich die Reihenfolge meiner Einträge unter Bestellung und Export .

Außerdem musste ich als Eclipse-PDE-Entwickler die Reihenfolge meiner Abhängigkeiten in meiner MANIFEST.MF und fügt das problematische Paket als erstes auf der Liste hinzu.

Das Spielen mit diesen Reglern und das Laufen Projekt > Sauber zwischendurch konnte ich diese Warnungen beseitigen.

9voto

usertest Punkte 1910

Für mich ist das die Lösung:

  • gehen Sie zum Baupfad des laufenden Projekts

unter Bibliotheken

  • wählen Sie die " JRE-System-Bibliothek [jdk1.8xxx]"
  • anklicken. bearbeiten
  • und wählen Sie entweder "Workspace default JRE(jdk1.8xx)" OR Alternatives JRE
  • Fertig klicken
  • OK anklicken

enter image description here

Hinweis: Stellen Sie sicher, dass in Eclipse / Preferences (NICHT das Projekt) / Java / Installed JRE der jdk auf den JDK-Ordner und nicht auf die JRE zeigt. C:\Program Dateien \Java\jdk1.8.0_74

enter image description here

0 Stimmen

Meiner war bereits auf 1,7...79 eingestellt, so dass ich in Panik geriet. Aber ich habe ihn einfach wieder ausgewählt, auf Übernehmen geklickt, und der Fehler war weg. Uff.

0 Stimmen

Wow! Das hat auch hier geholfen - der Wechsel von einer "Ausführungsumgebung" zu einer "alternativen JRE". Falls jemand eine logische Erklärung dafür hat (hier trat es auf, nachdem ich das Projekt-Faucet-Java von 1.5 (5.0 in der .settings-Konfigurationsdatei) auf 1.8 geändert hatte. Die Umstellung von Fehler auf Warnung in den globalen Voreinstellungen (siehe andere Antwort) hat nicht geholfen: immer noch Fehler. Es geht um alte Sun-Klassen, die wir aus dem Paket com.sun.image.codec.*) verwenden.

6voto

Entschuldigung für die Aktualisierung eines alten POST. Ich habe das gemeldete Problem und ich löste es wie unten gesagt.

Wenn Sie Eclipse + m2e maven plugin verwenden, klicken Sie mit der rechten Maustaste auf das Projekt/Modul, in dem der Fehler auftritt --> Eigenschaften --> Build Path --> Library --> Replace JDK/JRE to the one that is used in eclipse workspace.

Ich habe die oben genannten Schritte befolgt, und das Problem ist behoben.

0 Stimmen

Gut und schön, aber Sie haben im Grunde den Wortlaut der akzeptierten Antwort von Nels Beckman wiederholt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X