代码之家  ›  专栏  ›  技术社区  ›  Jesper

尝试设置PropertiesConfiguration时获取NoClassDefFoundError

  •  1
  • Jesper  · 技术社区  · 8 年前

    我正试图建立一个 FileBasedConfigurationBuilder PropertiesConfiguration 但是我得到了一个 NoClassDefFoundError

    public class Config {
      private static Properties properties;
      private static PropertiesConfiguration config;
    
      public static void setUp(String path) throws ConfigurationException, IOException {
        if (config == null) {
          FileBasedConfigurationBuilder<PropertiesConfiguration> builder =
              new FileBasedConfigurationBuilder<PropertiesConfiguration>(PropertiesConfiguration.class)
              .configure(new Parameters().properties()
                  .setFileName("myConfig.properties")
                  .setThrowExceptionOnMissing(true)
                  .setListDelimiterHandler(new DefaultListDelimiterHandler(','))
                  .setIncludesAllowed(false));
    
          config = builder.getConfiguration();
    
          File file = new File(path);
          FileReader reader = new FileReader(file);
          config.read(reader);
        }
      }
    }
    

    和堆栈跟踪:

    java.lang.NoClassDefFoundError: org/apache/commons/beanutils/BeanIntrospector
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Unknown Source)
        at com.sun.proxy.$Proxy38.<clinit>(Unknown Source)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
        at java.lang.reflect.Constructor.newInstance(Unknown Source)
        at java.lang.reflect.Proxy.newProxyInstance(Unknown Source)
        at org.apache.commons.configuration2.builder.fluent.Parameters.createParametersProxy(Parameters.java:294)
        at org.apache.commons.configuration2.builder.fluent.Parameters.properties(Parameters.java:245)
    
    2 回复  |  直到 8 年前
        1
  •  5
  •   KAD Moudiz    8 年前

    您似乎错过了apache commons bean utils jar(其中包含 BeanIntrospector 类)从您的类路径( commons-beanutils

    您可以从maven存储库下载jar: https://mvnrepository.com/artifact/commons-beanutils/commons-beanutils

        2
  •  0
  •   user8226019 user8226019    8 年前

    在静态初始值设定项中放置一个try/catch并查看异常。如果您在那里阅读了一些文件,并且这些文件与您的本地环境不同,则很可能是问题的原因(可能是找不到文件、没有权限等)。