迁移 Jave 11 _ 如何解决:java.lang.ClassNotFoundException: javax.activation.MimeTypeParseException

Moh*_*med 6 jaxb maven-3 maven-jaxb2-plugin java-11

我正在将我的 Java 项目从8版迁移到11版。

由于javax.activation已从 JDK 11 中删除,因此我将其添加到 Maven pom.xml 文件中:

<dependency>
  <groupId>javax.activation</groupId>
  <artifactId>activation</artifactId>
  <version>1.1.1</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

依赖项列在“Externat librairies”中,但每次我运行“mvn clean install”来构建我的项目时,我都会收到此错误:

...
Caused by: java.lang.ClassNotFoundException: javax.activation.MimeTypeParseException
at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50)
at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:271)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:247)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:239)
... 51 more
Run Code Online (Sandbox Code Playgroud)

你有什么想法吗?谢谢

小智 0

遗憾的是@lexicore不再在这里回答,但是maven-jaxb2-pluginjaxb-tools由于与其他相关的jaxb项目合并而被重命名)仍然(并返回)正在积极开发中,现在支持jdk11以及jdk17甚至jdk21。

对 jaxb-jakarta 的支持也可以(jaxb3 和 jaxb4)

您可以查看迁移指南,根据目标 jaxb 版本获取可用的最新版本。