非常简单的Apache-commons配置示例抛出NoClassDefFoundError

我正在尝试测试Apache-commons配置库用户指南中有关声明和创建bean的一个非常简单的示例 。 我几乎逐字地复制了示例中的代码,但是我得到了一个N​​oClassDefFoundErrorexception。

这是我正在使用的xml文件 – windowcongif.xml

        

这是WindowManager.java文件中的代码:

 package test; public interface WindowManager {} 

这是DefaultWindowManager.java文件中的代码:

 package test; public class DefaultWindowManager implements WindowManager { private boolean resizable; private boolean closable; private int defaultWidth; private int defaultHeight; } 

这是Main.java文件中的代码:

 package test; import org.apache.commons.configuration.ConfigurationException; import org.apache.commons.configuration.XMLConfiguration; import org.apache.commons.configuration.beanutils.BeanDeclaration; import org.apache.commons.configuration.beanutils.BeanHelper; import org.apache.commons.configuration.beanutils.XMLBeanDeclaration; public class Main { public static void main(String[] args) throws ConfigurationException { XMLConfiguration config = new XMLConfiguration("windowconfig.xml"); BeanDeclaration decl = new XMLBeanDeclaration(config, "gui.windowManager"); WindowManager wm = (WindowManager) BeanHelper.createBean(decl); } } 

这是运行时的输出:

 Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/beanutils/PropertyUtils at org.apache.commons.configuration.beanutils.BeanHelper.initProperty(BeanHelper.java:269) at org.apache.commons.configuration.beanutils.BeanHelper.initBeanProperties(BeanHelper.java:229) at org.apache.commons.configuration.beanutils.BeanHelper.initBean(BeanHelper.java:166) at org.apache.commons.configuration.beanutils.DefaultBeanFactory.initBeanInstance(DefaultBeanFactory.java:108) at org.apache.commons.configuration.beanutils.DefaultBeanFactory.createBean(DefaultBeanFactory.java:64) at org.apache.commons.configuration.beanutils.BeanHelper.createBean(BeanHelper.java:336) at org.apache.commons.configuration.beanutils.BeanHelper.createBean(BeanHelper.java:358) at org.apache.commons.configuration.beanutils.BeanHelper.createBean(BeanHelper.java:372) at test.Main.main(Main.java:23) Caused by: java.lang.ClassNotFoundException: org.apache.commons.beanutils.PropertyUtils at java.net.URLClassLoader$1.run(URLClassLoader.java:366) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:423) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:356) ... 9 more 

我如何使这个简单的例子有效?

我正在使用版本1.9的commons-configuration软件包,在将依赖项放在pom.xml文件中后由IntelliJ IDEA自动导入,以及在Windows 8 64位上运行的java版本1.7.0_17。

在您的类中导入org.apache.commons.beanutils.PropertyUtils

我遇到了同样的问题,我添加了这个依赖:

  commons-beanutils commons-beanutils 1.9.3