Heim > Java > javaLernprogramm > Hauptteil

Wie behebe ich den Fehler „javax.xml.bind existiert nicht' in Java 11 bei Verwendung von JAXB?

Barbara Streisand
Freigeben: 2024-11-06 00:47:02
Original
380 Leute haben es durchsucht

How to Resolve the

Das Paket javax.xml.bind existiert in Java 11 nicht

Bei Verwendung von JAXB zum Parsen und Authentifizieren von XML-Daten:

<code class="java">JAXBContext context = JAXBContext.newInstance("com.acme.foo");
Unmarshaller unmarshaller = context.createUnmarshaller();
unmarshaller.setSchema(schema);
FooObject fooObj = (FooObject) unmarshaller.unmarshal(new File("foo.xml"));</code>
Nach dem Login kopieren

Basierend auf Java 8 läuft dieser Code einwandfrei, aber in Java 11 tritt der folgende Kompilierungsfehler auf:

package javax.xml.bind does not exist
Nach dem Login kopieren

Workaround

Den Versionshinweisen zufolge entfernte Java 11 Java EE-Module, einschließlich javax.xml.bind (JAXB), was dieses Problem verursachte.

Um dieses Problem zu beheben, müssen Sie eine alternative Version der Java EE-Technologie verwenden. Fügen Sie einfach eine Maven-Abhängigkeit hinzu, die die erforderlichen Klassen enthält:

<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>
Nach dem Login kopieren

Jakarta EE 8 Update ( 2020 März 2020)

Sie können jetzt das alte JAXB-Modul durch Jakarta XML Binding in Jakarta EE 8 ersetzen:

<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>
Nach dem Login kopieren

Jakarta EE 9 Update (November 2020) Monat)

Verwenden Sie die neueste Version von Jakarta XML Binding 3.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>
Nach dem Login kopieren

Hinweis: Mit Jakarta EE 9 wird der neue API-Paket-Namespace jakarta übernommen. xml.bind.*, bitte aktualisieren Sie die Importanweisung:

<code class="java">javax.xml.bind -> jakarta.xml.bind</code>
Nach dem Login kopieren

Jakarta EE 10 Update (Juni 2022)

Verwenden Sie die neueste Version von Jakarta XML Binding 4.0 (erfordert Java SE 11 oder höher):

<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>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie behebe ich den Fehler „javax.xml.bind existiert nicht' in Java 11 bei Verwendung von JAXB?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!