Ich versuche, den Jaxb-Klassengenerator in Eclipse zu verwenden, um Jaxb-Klassen aus meinem Schema zu generieren. Ich erhalte den folgenden Fehler:
"Der Klassenpfad für dieses Projekt enthält anscheinend nicht die erforderlichen Bibliotheken, um mit der Klassengenerierung fortzufahren. Bitte stellen Sie sicher, dass eine JAXB-Implementierung auf dem Klassenpfad verfügbar ist. "
Wie kann ich dieses Problem lösen?
Stellen Sie sicher, dass die jaxb-impl.jar
-Bibliothek in Ihrem Projekt enthalten ist. Sie können zum Beispiel von hier herunterladen:
Ссылка
Wenn Sie Maven verwenden, können Sie dies als Abhängigkeit einfügen, andernfalls laden Sie die Datei herunter und fügen Sie sie als Bibliothek in Ihr Projekt ein.
Wenn Sie eine andere Version der Bibliothek benötigen, gehen Sie in dem oben hinzugefügten Link ein Verzeichnis nach oben, Sie können dort auch andere Versionen finden.
Wenn Sie die Klassengenerierung automatisieren möchten, sollten Sie, da Sie das Schema regelmäßig ändern, den Prozess automatisieren, z. B. über Maven.
Nach einer Menge Forschung hier ist, was ich getan habe, um das Problem zu beheben. Windows & gt; Einstellungen & gt; Java & gt; Installierte JREs ... stellen Sie sicher, dass Sie Ihre jre auf das jdk-Verzeichnis verweisen. Ich zeigte auf JRE und sobald ich es zu JDK änderte, fing es an zu arbeiten. Hoffe, das wird euch helfen.
Windows & gt; Einstellungen & gt; Java & gt; Installierte JREs & gt; Ausführungsumgebung Wählen Sie eine Umgebung JDK 1.8 und versuchen Sie dann, JAXB-Klassen zu erstellen.
Klicken Sie unter Bildlink auf Details.
ausSetzen Sie die Datei tools.jar in den Klassenpfad des Projekts (in dem der generierte Code gespeichert wird).
Ich habe hier eine Erklärung Ссылка gefunden Es funktioniert nicht, da Eclipse die JRE-Bibliotheken nur in den Klassenpfad des Projekts einfügt. Da der xjc-Code in tools.jar enthalten ist, müssen Sie diesen zusätzlichen Schritt bereitstellen.
Laden Sie com.springsource.com.sun.tools.xjc-2.1.7.jar herunter
und konfigurieren Sie den Build-Pfad. Dies löste die Warnung und den Fehler für mich. Hoffe, das hilft.