我有一些代码,使用了作为Java 6/7/8 JDK的一部分提供的JAXB API类。当我在Java 9中运行相同的代码时,运行时会出现指示找不到JAXB类的错误。
JAXB类自Java 6以来已经作为JDK的一部分提供,那么为什么Java 9找不到这些类了呢?
JAXB类自Java 6以来已经作为JDK的一部分提供,那么为什么Java 9找不到这些类了呢?
我在应用程序中遇到了同样的问题,即模块级别的 build.gradle 文件同时添加了 View Binding 和 Data Binding。
之前的版本
viewBinding {
enabled = true
}
dataBinding {
enabled = true
}
已解决
dataBinding {
enabled = true
}
classpath 'com.android.tools.build:gradle:3.6.3'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.20"
这对我有用,我有一个使用Java 8编译的Spring Boot项目,但是我不知道为什么有一天我的Maven开始使用Java 11进行编译,在Ubuntu上我用以下方法解决:
sudo update-java-alternatives -l
这显示了我电脑上可用的JDK:
java-1.11.0-openjdk-amd64 1111 /usr/lib/jvm/java-1.11.0-openjdk-amd64
java-1.8.0-openjdk-amd64 1081 /usr/lib/jvm/java-1.8.0-openjdk-amd64`
所以我最终运行了这个命令来选择所需的内容:
sudo update-java-alternatives -s java-1.8.0-openjdk-amd64
就是这样,如果想了解更多,请查看如何使用命令更新替代项
对我来说,这是一个简单的解决方案(Mac用户)
run in terminal --> alias j8="export JAVA_HOME=`/usr/libexec/java_home -v 1.8`;java -version"
then run --> j8
thats it !!(now run your mvn commands)
或者你可以在你的 .bash_profile 文件中设置上述内容
如果您正在调用SOAP Web服务(例如使用jaxws-maven-plugin
),只需添加此依赖项即可消除所有JAXB错误:
<dependency>
<groupId>org.glassfish.metro</groupId>
<artifactId>webservices-rt</artifactId>
<version>2.4.3</version>
</dependency>
已使用Java 13进行测试
我正在使用这些依赖项,运行得非常完美
enter code h<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.9.1</version>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.1</version>
</dependency>
</dependencies>ere