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

时间:2009-01-27 14:22:53

标签: java eclipse

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

我正在使用Eclipse 3.4

10 个答案:

答案 0 :(得分:11)

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

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

答案 1 :(得分:9)

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

答案 2 :(得分:5)

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

可以在http://repo.openscada.org/p2/bob/R

找到更新网站

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

答案 3 :(得分:2)

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

答案 4 :(得分:1)

  

意味着添加一个新的.jar文件   这个目录(并刷新   project)更新构建路径

抱歉,Eclipse不支持此功能。

答案 5 :(得分:0)

在Windows机器上,你可以在命令行上用一个内衬做uzhin所说的。

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

for %i in (c:\javalibs\axis2-1.4.1\lib\*.jar) do @echo     ^<classpathentry kind="var" path="AXIS2_HOME/lib/%~ni%~xi"/^>  >> addto.classpath

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

<classpathentry kind="var" path="AXIS2_HOME/lib/activation-1.1.jar"/>
<classpathentry kind="var" path="AXIS2_HOME/lib/annogen-0.1.0.jar"/>
<classpathentry kind="var" path="AXIS2_HOME/lib/axiom-api-1.2.7.jar"/>
<classpathentry kind="var" path="AXIS2_HOME/lib/axiom-dom-1.2.7.jar"/>
...

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

答案 6 :(得分:0)

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

  1. 创建新的动态网络项目(默认设置正常,因此速度很快)
  2. 删除WebContent / WEB-INF /
  3. 下的目录“lib”
  4. 重新创建该目录,但将其创建为主项目中您的jar所在目录的链接
  5. 在项目的Java Build Path设置中的Order and Export选项卡上检查Web App Libraries选项
  6. 将此新创建的项目添加为主项目的依赖项
  7. 为项目中的每个lib目录执行此操作会很烦人,但这比每次执行svn更新时手动添加jar更好(来自使用Idea的幸运的同事)。遗憾的是Eclipse没有这个功能。

答案 7 :(得分:0)

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

<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/User Library name"/>

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

答案 8 :(得分:0)

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

http://sweetened.googlecode.com/

答案 9 :(得分:-2)

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

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

我暂时没有使用java,所以不确定上述是否可行,但这就是我期望的语法。