mac java 9 gradle ClassNotFoundException:构建时的javax.xml.bind.JAXBElement

时间:2017-11-22 08:11:47

标签: java gradle

我正在尝试使用Java 9在Mac上构建一个gradle项目,但是我收到了这个错误:

FAILURE: Build failed with an exception.

Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBElement

Java版本是:

java version "9.0.1"
Java(TM) SE Runtime Environment (build 9.0.1+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.1+11, mixed mode)

如何将JAXB添加到类路径?此项目在Windows和其他计算机上构建,无需添加JAXB即可。

3 个答案:

答案 0 :(得分:0)

由于Java 9的变化,你看到了这一点。以下是解决这个问题的方法:How to resolve java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException in Java 9

但是,如果您的项目是为Java 8(或更早版本)编写的,那么我真正建议的是让Gradle在build.gradle中了解它:

...

plugins {
    id 'java'
}

sourceCompatibility = 1.8
targetCompatibility = 1.8

...

答案 1 :(得分:0)

将以下内容添加到build.gradle:

时可以使用
compile 'javax.annotation:jsr250-api:1.0'

tasks.withType(AbstractCompile) {
    options.compilerArgs += ["--add-modules", "java.xml.bind"]
}

tasks.withType(Test) {
    jvmArgs += ["--add-modules", "java.xml.bind"]
}

答案 2 :(得分:0)

您可以在package File_Lists is new Ada.Containers.Vectors (Index_Type => Positive, Element_Type => Unbounded_String); File : File_Lists.Vector; Get_Files : loop exit Get_Files when No_More_Files; File.Append (New_Item => Next_File); end loop Get_Files; 块下添加以下内容来解决缺少的dependencies

JAXBElement