我想在Eclipse中使用Apache commons.io作为插件项目。我将.jar添加到构建路径:
(属性->java构建路径->库)
但当我试图测试我的项目时,我得到了这个错误:
org/apache/commons/io/FileUtils的NoClassDefFoundError。
我认为Eclipse没有复制库,或者我没有告诉项目复制该库。
我该如何解决这个问题?我正在尝试编写一个导出插件,其中一个完整的文件夹被复制到另一个文件夹。
首先看看是否已经有eclipse插件提供了这个库。对于apachecommons,您将找到一个。使用插件编辑器并为所需库添加依赖项,如果它们像apachecommons一样常见的话;)
其他明智的添加目录称之为"libs",并在那里添加您的jar。然后将它们放在插件编辑器中的类路径中。要做到这一点,请使用选项卡"Runtime"并使用"classpath"部分中的添加按钮。
这将在类似的build.properties中结束
source.. = src/
output.. = bin/
bin.includes = META-INF/,
lib/commons-csv.jar,
lib/commons-lang-2.6.jar,
lib/commons-io-2.0.1.jar
以这种方式添加的库将导出到您的插件中,并保留在类路径中。
项目的类路径将自动更新。
对于像DB驱动程序这样的重要库,最佳做法是将它们放在一个额外的插件项目中,而不是扩展UI。像这样的插件只有build.properties。然后你可以使用这个库插件作为其他插件的依赖项。
没错,Eclipse不会复制项目构建路径上的资源。你需要在你的classpath
上找到他们。为此:
-
手动将jar复制到应用程序可以一致访问它们的位置(
brittle setup
) -
或者使用ant、maven等构建工具(
recommended
)
您听说过目标定义吗
这正是你所需要的,但你仍然可以与Maven(第谷)一起使用。。。在开发插件时,您应该始终尝试管理dep。通过目标定义,并且永远不要在类路径中添加jar