-2

我尝试了几种方法(谷歌,堆栈溢出......),几天后解决了以下错误,但没有成功。仅当我运行应用程序时才会发生此错误。编译不受影响。

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。任何人都可以解释这个吗?

4

1 回答 1

0

Euler ,最常见的原因如下。您已经包含了依赖项,这些依赖项在执行期间又引用了类并给了您一个异常。IDE 不会在编译时抱怨,因为所有 pre-reqs 都已满足,当执行发生时,将找不到引用它们的 jars/libraries 并引发异常。要解决这个问题,最简单的方法是使用像 maven 或 gradle 这样的框架,例如它可以为您下载这些依赖项。例如,当您进行 mavenize 时,所有传递依赖项都会被下载。否则,您将不得不手动下载这些 jar。在您的情况下,需要添加以下 jar 。如果还有其他 deps ,ClassNOtFOund 仍会不断出现,您需要一次解决一个。高温高压

于 2016-09-15T01:06:47.230 回答