我想在Eclipse中使用Apache commons.io作为插件项目。 我将.jar添加到了构建路径中:
(properties-> java build path-> Libraries)
但是当我尝试测试我的项目时,我收到了这个错误:
org / apache / commons / io / FileUtils的NoClassDefFoundError。
我认为Eclipse不会复制库或我想念项目复制该库。
我该如何解决这个问题? 我正在尝试编写一个导出插件,其中一个完整的文件夹被复制到另一个文件夹。
答案 0 :(得分:6)
首先看看是否已经有一个提供此库的eclipse插件。对于apache commons,你会找到一个。 使用插件编辑器并为所需的库添加依赖项,如果它们像apache commons一样常见;)
其他明智的添加目录称为“libs”并在那里添加你的罐子。然后将它们放在插件编辑器上,放到类路径中。 要执行此操作,请使用“运行时”选项卡并使用“类路径”部分中的添加按钮。
这将最终出现在像这样的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-Driver这样的重要库的最佳实践,将它们放在一个额外的插件项目中,而不是扩展UI。像这样的插件只有一个build.properties。 然后你可以使用这个库插件作为其他插件的依赖。
答案 1 :(得分:0)
你是对的,Eclipse不会复制项目构建路径上的资源。您需要classpath
上的这些内容。为此:
答案 2 :(得分:0)
你听说过Target Definition吗? 这正是您所需要的,并且您仍然可以将它与Maven(Tycho)一起使用......在开发插件时,您应该始终尝试管理deps。通过目标定义,永远不要在类路径中添加jar