我尝试了几种方法(谷歌,堆栈溢出......),几天后解决了以下错误,但没有成功。仅当我运行应用程序时才会发生此错误。编译不受影响。
org.databene.commons.ConfigurationError:找不到类:org.databene.commons.ExceptionMapper.configurationException(ExceptionMapper.java:121)的 org.databene.commons.BeanUtil.forName 的“org.databene.benerator.engine.DefaultBeneratorFactory” (BeanUtil.java:358) 在 org.databene.commons.BeanUtil.newInstance(BeanUtil.java:423) 在 org.databene.benerator.BeneratorFactory.getInstance(BeneratorFactory.java:56) 在 org.databene.benerator.util。 GeneratorUtil.init(GeneratorUtil.java:54) 在 testGeneration.TestCaseGenerator.generateTests(TestCaseGenerator.java:326)
也就是说,如果我尝试实例化 DefaultBeneratorFactory 类的对象,则不会出现问题。当我调用一个方法来启动一个生成器时,错误就会出现:
GeneratorUtil.init(stringGenerator);
我开发的应用程序是 OS X El Capitan 中 Intellij Idea Community Edition(版本 2016.2.4)的插件。Java 环境是 Oracle JDK 8u102。我的插件使用 Databene Benerator 框架,可以作为一组罐子下载。我在项目中包含了相应的 jar 作为库:
查看依赖项:
我遵循了一些建议:
1) 标记每个 Jar 的导出选项。关联
2)更改输出路径并设置全局库。关联
3)使用之前版本的IDEA,尝试更早的JDK,Invalidate Cache of IDEA。
另一个重要信息,我的插件的 Eclipse 版本在相同的环境中功能齐全,具有相同版本的 Benerator 框架。所以,我认为这里有一些IDEA的特殊性。
任何帮助是极大的赞赏!!
我认为问题在于 Intellij Idea 如何处理 jar 中的类。DefaultBeneratorFactory.class 位于正确路径的 jar 中:org/databene/benerator/engine。任何人都可以解释这个吗?