尝试设置 PropertiesConfiguration 时出现 NoClassDefFoundError
Getting NoClassDefFoundError when trying to set up PropertiesConfiguration
我正在尝试设置 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)
你得到的是 java.lang.NoClassDefFoundError,这并不意味着你的 class 不见了(在这种情况下你会得到 java.lang.ClassNotFoundException)。尝试读取 class.
时,ClassLoader 运行 在读取 class 定义时出错
将 try/catch 放入您的静态初始值设定项中并查看异常。如果您在那里阅读了一些文件并且它与您的本地环境不同,则很可能是问题的原因(可能找不到文件,没有权限等)。
您似乎错过了 class 路径 (commons-beanutils
) 中的 apache commons bean utils jar(其中包含 BeanIntrospector
class),请务必添加它可以解决问题。
您可以从 maven 存储库下载 jar:https://mvnrepository.com/artifact/commons-beanutils/commons-beanutils
我正在尝试设置 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)
你得到的是 java.lang.NoClassDefFoundError,这并不意味着你的 class 不见了(在这种情况下你会得到 java.lang.ClassNotFoundException)。尝试读取 class.
时,ClassLoader 运行 在读取 class 定义时出错将 try/catch 放入您的静态初始值设定项中并查看异常。如果您在那里阅读了一些文件并且它与您的本地环境不同,则很可能是问题的原因(可能找不到文件,没有权限等)。
您似乎错过了 class 路径 (commons-beanutils
) 中的 apache commons bean utils jar(其中包含 BeanIntrospector
class),请务必添加它可以解决问题。
您可以从 maven 存储库下载 jar:https://mvnrepository.com/artifact/commons-beanutils/commons-beanutils