Heim  >  Artikel  >  Java  >  Warum ist das JAXB-Paket in Java 11 nicht mehr verfügbar?

Warum ist das JAXB-Paket in Java 11 nicht mehr verfügbar?

Linda Hamilton
Linda HamiltonOriginal
2024-11-05 10:10:02654Durchsuche

Why is the JAXB package no longer available in Java 11?

JAXB-Paket existiert in Java 11 nicht mehr

Einführung

Bei der Migration von Java 8 Bei Java 11 kann es bei Benutzern zu dem Kompilierungsfehler „Paket javax.xml.bind existiert nicht“ kommen. Dieser Fehler ist auf die Entfernung des Pakets javax.xml.bind (JAXB) in Java 11 zurückzuführen.

Ursache

Gemäß Java Enhancement Proposal (JEP) 320, Java 9 ist veraltet und Java 11 hat Java EE-Module, einschließlich JAXB, entfernt. Diese Änderung wurde vorgenommen, um die Editions- und Ökosystemstrategie von Java zu optimieren.

Lösung

Um das Problem zu beheben, können Sie alternative Versionen von Java EE-Technologien verwenden, indem Sie den folgenden Maven hinzufügen Abhängigkeiten zu Ihrem Projekt:

<code class="xml"><dependency>
  <groupId>javax.xml.bind</groupId>
  <artifactId>jaxb-api</artifactId>
  <version>2.3.0</version>
</dependency>
<dependency>
  <groupId>com.sun.xml.bind</groupId>
  <artifactId>jaxb-core</artifactId>
  <version>2.3.0</version>
</dependency>
<dependency>
  <groupId>com.sun.xml.bind</groupId>
  <artifactId>jaxb-impl</artifactId>
  <version>2.3.0</version>
</dependency></code>

Jakarta EE 8 (März 2020) Update

Sie können auch Jakarta XML Binding von Jakarta EE 8 verwenden:

<code class="xml"><dependency>
  <groupId>jakarta.xml.bind</groupId>
  <artifactId>jakarta.xml.bind-api</artifactId>
  <version>2.3.3</version>
</dependency>
<dependency>
  <groupId>com.sun.xml.bind</groupId>
  <artifactId>jaxb-impl</artifactId>
  <version>2.3.3</version>
  <scope>runtime</scope>
</dependency></code>

Jakarta EE 9 (November 2020) Update

Jakarta EE 9 brachte eine neuere Version der Jakarta XML Binding 3.0. So aktualisieren Sie Ihren Build:

  • Aktualisieren Sie die Jakarta EE 9 API auf jakarta.xml.bind-api
  • Aktualisieren Sie die kompatible Implementierung auf jaxb-impl Version 3.0.0:
<code class="xml"><dependency>
  <groupId>jakarta.xml.bind</groupId>
  <artifactId>jakarta.xml.bind-api</artifactId>
  <version>3.0.0</version>
</dependency>
<dependency>
  <groupId>com.sun.xml.bind</groupId>
  <artifactId>jaxb-impl</artifactId>
  <version>3.0.0</version>
  <scope>runtime</scope>
</dependency></code>

Hinweis: jakarta.xml.bind erfordert Java 8 oder höher.

Jakarta EE 10 (Juni 2022) Update

Jakarta EE 10 bringt die neueste Version von Jakarta XML Binding 4.0. So aktualisieren Sie Ihren Build:

  • Aktualisieren Sie die Jakarta EE 10 API auf jakarta.xml.bind-api
  • Aktualisieren Sie die kompatible Implementierung auf jaxb-impl Version 4.0.0
<code class="xml"><dependency>
  <groupId>jakarta.xml.bind</groupId>
  <artifactId>jakarta.xml.bind-api</artifactId>
  <version>4.0.0</version>
</dependency>
<dependency>
  <groupId>com.sun.xml.bind</groupId>
  <artifactId>jaxb-impl</artifactId>
  <version>4.0.0</version>
  <scope>runtime</scope>
</dependency></code>

Hinweis: jakarta.xml.bind 4.0 erfordert Java SE 11 oder höher.

Das obige ist der detaillierte Inhalt vonWarum ist das JAXB-Paket in Java 11 nicht mehr verfügbar?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn