Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 尝试设置属性配置时获取NoClassDefFoundError_Java_Noclassdeffounderror - Fatal编程技术网

Java 尝试设置属性配置时获取NoClassDefFoundError

Java 尝试设置属性配置时获取NoClassDefFoundError,java,noclassdeffounderror,Java,Noclassdeffounderror,我正在尝试设置一个基于文件的配置生成器,以便可以使用属性配置,但我得到了一个NoClassDefFoundError。 这是我的密码 public class Config { private static Properties properties; private static PropertiesConfiguration config; public static void setUp(String path) throws ConfigurationException,

我正在尝试设置一个
基于文件的配置生成器
,以便可以使用
属性配置
,但我得到了一个
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);
    }
  }
}
公共类配置{
私有静态属性;
私有静态属性配置配置;
公共静态无效设置(字符串路径)引发ConfigurationException,IOException{
if(config==null){
基于文件的配置生成器=
新的FileBasedConfiguration Builder(PropertiesConfiguration.class)
.configure(新参数().properties())
.setFileName(“myConfig.properties”)
.SetThroweExceptionOnMissing(真)
.setListDelimiterHandler(新的DefaultListDelimiterHandler(','))
.SetIncludeAllowed(false));
config=builder.getConfiguration();
文件=新文件(路径);
FileReader=新的FileReader(文件);
config.read(读卡器);
}
}
}
和堆栈跟踪:

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)
java.lang.NoClassDefFoundError:org/apache/commons/beanutils/beanintrostect
位于java.lang.Class.forName0(本机方法)
位于java.lang.Class.forName(未知源)
在com.sun.proxy.$Proxy38.(未知来源)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(未知源)
位于sun.reflect.delegatingConstructor或AccessorImpl.newInstance(未知源)
位于java.lang.reflect.Constructor.newInstance(未知源)
位于java.lang.reflect.Proxy.newProxyInstance(未知源)
位于org.apache.commons.configuration2.builder.fluent.Parameters.createParametersProxy(Parameters.java:294)
位于org.apache.commons.configuration2.builder.fluent.Parameters.properties(Parameters.java:245)

您将得到一个java.lang.NoClassDefFoundError,这并不意味着您的类丢失(在这种情况下,您将得到一个java.lang.ClassNotFoundException)。在尝试读取类时,类加载器在读取类定义时遇到错误


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

您似乎错过了类路径(
commons beanutils
)中的apache commons bean utils jar(其中包含
BeanTransectit
类),确保添加它以解决问题

您可以从maven存储库中下载jar: