问题来源
做一个xml文件的映射,用的是jdk11的版本。
给类加上注解:@XmlRootElement(name = "d")
导入相应的类名:import javax.xml.bind.annotation.XmlRootElement;
直接报错:javax.xml.bind cannot resolve......
问题解决
方式 1
将jdk的版本退回到jdk8,因为jdk8还支持自带javax.xml.bind.annotation
包。
方式 2
手动引入相关的jar包。
如果用的项目构建工具是Gradle,在build.gradle文件中手动增加依赖,进行引入。
dependencies {
//由于jdk11删除了java.xml.bind这个包,所以这里要手动重新引入
implementation 'javax.xml.bind:jaxb-api:2.3.0'
implementation 'com.sun.xml.bind:jaxb-core:2.3.0'
implementation 'com.sun.xml.bind:jaxb-impl:2.3.0'
implementation 'javax.activation:activation:1.1.1'
}
如果用的项目构建工具是Maven,则在pom.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>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1.1</version>
</dependency>
关于javax.xml.bind
的jdk版本支持情况:
- jdk8:支持
- jdk9:弃用
- jdk10:弃用
- jdk11:移除