当前位置: 首页 > 知识库问答 >
问题:

在Intellij IDEA的Jar文件中找不到类

姜聪
2023-03-14

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

org.databene.commons。配置错误:未找到类:“org.databene.benerator.engine”。DefaultBeneratorFactory'位于org.databene.commons.ExceptionMapper.configurationException(ExceptionMapper.java:121)位于org.databene.commons.BeanUtil.forName(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社区版(2016.2.4版)的插件。Java环境是Oracle JDK 8u102。我的插件使用Databene Benerator框架,可以作为一组JAR下载。我将相应的JAR作为库包含在项目中:

项目设置中的库

请参阅依存关系:

项目设置中的依赖项

我遵循了一些建议:

1) 标记每个Jar的导出选项。链接

2) 更改输出路径并设置全局库。链接

3) 使用IDEA的早期版本,尝试早期JDK,使IDEA的缓存无效。

另一个重要信息是,我的插件的Eclipse版本在相同的环境中是完全功能的,使用的是相同版本的Benerator framework。所以,我认为这里有一些特殊的想法。

任何帮助都非常感谢!!

我认为问题是Intellij Idea如何处理jar中的类。DefaultBeneratorFactory.class在jar中的正确路径为:org/数据库/benerator/引擎。有人能解释一下吗?

共有1个答案

满伟彦
2023-03-14

Euler,最常见的原因如下。您包含的依赖项在执行期间反过来引用类并为您提供异常。IDE不会在编译时抱怨,因为所有预请求都已满足,当执行发生时,将无法为引用它们的jar/库找到这些类并引发异常。为了解决问题,最简单的方法是使用例如maven或gradle之类的框架,它可以为您下载这些依赖项。例如,当您mavenize时,所有传递依赖项都会被下载。否则您将不得不手动下载这些jar。在您的情况下,需要添加以下jar。如果有其他dep,ClassNOtFOund仍然会不断出现,您需要一次解决一个。HTH

 类似资料:
  • 我在我支持的许多应用程序中实现了Flyway,它像梦一样工作。 但是,当我将应用程序部署到测试环境时,迁移就停止了。 经过一些调查,我发现当迁移被加载到jar文件中时,它们不是通过Flyway定位的,而是当它们没有被压缩时(比如当我在Eclipse中工作时,或者如果我将jar解压到类路径中),它会按预期工作。 由于应用程序的插件架构,我无法使用“默认”设置,因此我将Flyway对象设置为: 如果要

  • 我正在尝试使用Ant1.9.6从您的项目中构建一个jar文件。在构建jar文件时,我没有得到任何编译错误,但是在执行它时,我得到了NoClassDefoundError。我已经在生成的清单文件中验证过,我可以看到所需的依赖JAR被添加到类路径中,如class-path:lib/a.jar lib/b.jar lib/c.jar。lib文件夹与src文件夹并行,因此不可能是问题。我正在Mac OS上

  • 我有一个程序,必须从终端界面播放声音。 代码相当简单,如下所示: 该文件位于“我的源路径”中的“音乐”文件夹中。 当我在eclipse中运行程序时,所有工作都非常好。但是如果我将其导出到. jar文件中并在windows cmd中尝试它,我会收到这条消息 [编辑]音频文件确实已打包到中。jar,但它仍然不起作用。 是否有可能播放来自windows提示符的声音?如果没有,是否有这样的声音? 谢谢Si

  • 问题内容: 我在JBoss 4.3-eap上部署带有捆绑的war,jar和配置文件(.properties文件)的耳朵时遇到问题。这是我的耳朵结构: 我的jboss-app.xml中包含以下内容: 我的application.xml看起来像这样: 基本上,在部署耳朵时,我遇到了一个问题,其中我的一场大战无法在文件(r)中找到类。我认为这是由于战争没有找到该库,即使它在文件夹/ classpath中

  • 我正在尝试将java项目构建为一个jar文件,它需要google凭据才能运行。 运行此命令时: 我收到这个错误: 我按如下方式存储凭据的路径: 我使用此方法从资源文件夹检索凭据: 我不明白我需要做什么来避免这个错误。任何帮助都将不胜感激。

  • 问题内容: 第一:我意识到这个问题应该很简单,很多人似乎都经历过。但是,看来我的问题可能与现有职位 略有 不同。 我正在使用NetBeans编译Java应用程序。构建完成后,输出将正确进入dist \文件夹。jar文件存在于此。如果我转到命令行,请导航到该文件夹​​,然后调用以下命令: java -jar Prosperity.jar 一切正常。显然,该应用程序的名称为Prosperity。以下命