【发布时间】:2016-04-05 09:10:47
【问题描述】:
下面是我的 Spring 代码。当我尝试编译程序时,所有类都已成功编译,并且在运行程序时出现了NoClassDefFoundError。
MainMethodCLass:
package test;
import beans.SpringTest;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
public class Client
{
public static void main(String [] raja)
{
//find xml
Resource r = new ClassPathResource("resources/spring.xml");
//load xml into container
BeanFactory fact = new XmlBeanFactory(r);
//create test class object
Object o = fact.getBean("t");
SpringTest t = (SpringTest)o;
t.hello();
}
}
简单 POJO 类:
package beans;
public class SpringTest
{
public void hello()
{
System.out.println("Hello World");
}
}
包资源中的spring.xml文件:
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN"
"http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>
<bean id = "t" class = "beans.Test">
</bean>
</beans>
当我编译这个程序时它已经成功编译,但是当我编译时出现以下错误:
D:\Corejava>java test.Client
Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/core/io/Resource
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.getMainMethod(Unknown Source)
at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.springframework.core.io.Resource
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)
... 6 more
【问题讨论】:
-
不,我没有使用 Maven @Abdelhak
-
构建项目后你的lib文件夹的内容是什么?
-
@RafikBELDI 我没有使用任何 IDE 只是我下载了 jar 文件并设置了 jar 的类路径并希望在命令提示符下执行。程序正在编译但它没有执行。跨度>