Spring Core Framework:ApplicationContext的线程NoClassDefFoundError中的异常

时间:2015-05-23 11:54:01

标签: spring gradle build.gradle

我创建了一个使用Spring Core框架的简单程序,并尝试使用gradle构建它。能够成功编译项目但是当我尝试使用

执行程序时
  

java -jar build \ libs \ knightFramework-0.1.0.jar

然后面临轰鸣声运行时异常,但同样的程序在Eclipse中工作正常。 请建议我必须在build.gradle中进行更改。

Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/context/ApplicationContext
    at java.lang.Class.getDeclaredMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
    at java.lang.Class.getMethod0(Unknown Source)
    at java.lang.Class.getMethod(Unknown Source)
    at sun.launcher.LauncherHelper.validateMainClass(Unknown Source)
    at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.springframework.context.ApplicationContext
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)

代码结构 src \ main \ java \ knightFramework - >包含类BraveKnight.java,KnightConfig.java,KnightMain.java,SlayDragonQuest.java和Interfaces:Knight.java,Quest.java

KnightMain.java

bk.embarkOnQuest()的O / P - >只是sysout(“踏上杀戮之龙任务”)

package knightFramework;

import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class KnightMain{

    public static void main(String[] args) {

        ApplicationContext ac = new AnnotationConfigApplicationContext(knightFramework.KnightConfig.class);

        Knight bk = (Knight) ac.getBean("braveKnightBean");
        bk.embarkOnQuest();

    }
}

KnightConfig.java

package knightFramework;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class KnightConfig {

    @Bean
    public Knight braveKnightBean(){
        return new BraveKnight(slayDragonQuest());
    }

    @Bean
    public Quest slayDragonQuest(){
        return new SlayDragonQuest();
    }
}

的build.gradle

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'application'

mainClassName = 'knightFramework.KnightMain'

jar {
    baseName = 'knightFramework'
    version =  '0.1.0'
    manifest {
        attributes 'Main-Class': 'knightFramework.KnightMain'
    }
}

repositories {
    mavenCentral()
}

dependencies {
    compile("org.springframework:spring-context:4.1.6.RELEASE")
}

0 个答案:

没有答案