NoClassDefFoundError:项目编译后引发了/ org / jdom2 / JDOMException

时间:2019-06-11 20:06:15

标签: java

我正在开发一个gradle项目,我想编译我拥有的项目,以在我的IDE Netbeans 8.2之外对其进行测试,在该项目中它可以正常工作。

当我尝试使用通常的java -jar命令运行程序时,它最初可以正常工作,直到程序遇到可以抛出JDOMException的类为止。然后我得到标题中描述的错误,然后是ClassNotFoundException。

在Netbeans中,JDOMException.class下包含Dependencies>Compile for main>jdom2-2.0.6.jar>org.jdom2

build.gradle脚本显示为:

apply plugin: 'java'

sourceCompatibility = 1.8

[compileJava, compileTestJava]*.options*.encoding = 'UTF-8'


if (!hasProperty('mainClass')) {
    ext.mainClass = 'bikesys.hda.BikeSys'
}

repositories {
    mavenCentral()
    jcenter()
}

dependencies {

testCompile group: 'junit', name: 'junit', version: '4.10'
compile files('libs/jcalendar-1.4.jar')
compile group: 'org.jdom', name: 'jdom2', version: '2.0.6'


compile ("com.byteowls:jopencage:1.2.0")
compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.0.1'
compile group: 'org.slf4j', name:'slf4j-api', version: '1.7.2'
compile group: 'ch.qos.logback', name:'logback-classic', version: '1.0.9'
compile group: 'ch.qos.logback', name:'logback-core', version: '1.0.9'
compile group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5.6'

compile group: 'org.json', name: 'json', version: '20180813'

compile group: 'com.google.code.gson', name: 'gson', version: '2.8.5'
compile group: 'log4j', name: 'log4j', version: '1.2.17'
compile group: 'me.atlis', name: 'atlis-location-base', version: '1.0.0'    
compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.8.1'
compile group: 'me.atlis', name: 'nominatim-api', version: '1.0.0'
}

jar {
    manifest {
        attributes(
            'Main-Class': 'bikesys.hda.BikeSys'
         )
    }
}

我在Netbeans中使用Java JDK 1.8.0_202,并在JRE 1.8.0_211-B12中将其作为运行时环境。我已经找到了“必须将jdom2添加到运行时环境”的答案,但是我既不知道如何做到这一点,也不知道这是否是解决问题的一般方法。

编辑:我已经看到了链接在一起的“重复问题”,但是我只是看到了有关导致NoClassDefFound异常的原因的解释,而不是真正的解决方法。

0 个答案:

没有答案