Eclipse buildpath自动获取内部目录的所有JAR

如何配置项目构建路径以使一组位于同一目录中的.jar文件自动包含在构建路径中? 这意味着将新的.jar文件添加到此目录(并刷新项目)会更新构建路径? Rem:我不是在Web应用程序中工作,而是在独立的Java应用程序中工作。 我知道在Dynamic Web Project中可以将WEB-INF / lib中的所有.jars包含在构建路径中。 是否可以在独立应用程序中执行相同的包含?

我正在使用Eclipse 3.4

AFAIK,没有正常的方法可以做到这一点。

如果你真的想要,那就有点黑客了。 Eclipse .classpath文件是一个非常简单的XML。 您可以编写遍历目录的脚本或ant任务,更新.classpath xml并刷新项目。

使用自制的“ClassPath容器”解决了这个问题,但需要您构建一个Eclipse插件: http : //www.ibm.com/developerworks/edu/os-dw-os-eclipse-classpath.html

我的同事实现了一个类路径容器,它在工作区内的给定目录中递归查找jar,看看http://openscada.org/2010/05/31/adding-a-directory-as-class-path-to -日食/

更新站点位于http://repo.openscada.org/p2/bob/R

该插件是LGPL V3的许可证,您可以在https://github.com/ctron/org.openscada.bob下找到源代码。

使用Maven2,并使用Eclipse Maven2插件。

这意味着将新的.jar文件添加到此目录(并刷新项目)会更新构建路径

对不起,Eclipse不支持这个。

在Windows机器上,您可以使用命令行上的一个内衬来执行uzhin所说的内容。

假设您在Eclipse中设置了一个名为AXIS2_HOME的变量,该变量指向c:\ javalibs \ axis2-1.4.1,此示例使用“for”命令迭代c:\ javalibs \ axis中的所有.jar文件lib目录并在.classpath节点中写入一个名为addto.classpath的文件。 (注意:克拉字符^在命令行中转义<和>,因此它们不会执行它们通常执行的操作。)

for %i in (c:\javalibs\axis2-1.4.1\lib\*.jar) do @echo ^ >> addto.classpath 

你最终在文件中得到这样的东西……

     ... 

那么你可以复制这些行并将它们粘贴到实际的.classpath文件中的显而易见的位置。

我正在使用我在阅读类似问题后开发的解决方法。 我在这里发布它,因为这个问题的范围有点不同,如何使用那里写的建议可能并不明显。

  1. 创建新的动态Web项目(默认设置正常,因此速度很快)
  2. 删除WebContent / WEB-INF /下的目录“lib”
  3. 重新创建该目录,但将其创建为主项目中您的jar所在目录的链接
  4. 在项目的Java Build Path设置中的Order and Export选项卡上检查Web App Libraries选项
  5. 将此新创建的项目添加为主项目的依赖项

对项目中的每个lib目录执行此操作很烦人,但这比每次执行svn更新时手动添加jar更好(来自使用Idea的幸运同事)。 遗憾的是Eclipse没有这个function。

您可以在Eclipse中使用用户库,这是组织一组jar文件的有用方法。 如果您有一组在多个项目中使用的jar文件,则可以创建一个用户库来引用一组jar文件。 因此,您需要在项目的构建路径中包含的只是用户库而不是所有单独的jar文件。

  

http://www.avajava.com/tutorials/lessons/what-is-a-user-library-and-how-do-i-use-it.html;jsessionid=ACD75E0A035BDC3AC656B481A7830FB6

我构建了一个生成.classpath(和.project)的工具,但是它要求你在ant build中指定jar列表。 它可能会扩展为读取jar文件列表。

http://sweetened.googlecode.com/

您是否尝试在类路径中使用通配符? 所以你会使用类似的东西:

 javac MyApp.java -cp /some/path/to/libraries/*.jar 

我已经有一段时间没用java了,所以不确定上面是否可行,但这就是我期望的语法。