【问题标题】:Eclipse projects vs build pathEclipse 项目与构建路径
【发布时间】:2014-05-23 16:37:24
【问题描述】:

我正在构建一个库,该库将一些代码包装在 spymemcached 客户端周围。这称为 CacheClient。这是一个简单的 Java 项目。我把 spymemcached.jar 放到它的 lib 文件夹中。

这是它的样子,你也可以看到构建路径设置:

库:CacheClient 项目:cacheclient.jar

    • spymemcached.jar

Java 构建路径/库选项卡: spymemcached.jar - CacheClient/lib/spymemcached.jar

我正在做的是构建一个使用这个库的简单 java web 项目。

WebApp:ServiceWebApp 项目:servicewebapp.war

  • 网页内容
    • WEB-INF

Java 构建路径/项目选项卡:CacheClient

所以,我的 Webapp 的构建路径设置为使用 CacheClient 项目。我将cacheclient.jar复制到tomcat的lib目录中,并部署了ServiceWebApp。

当我运行 Web 应用程序时,它会失败,因为它说我的 CacheClient 代码正在寻找 spymemcached 类 (ClassNotFoundException)。

我可以通过将 spymemcached.jar 放入 tomcat 的 lib 目录来解决这个问题,但如果有其他解决方案会很棒。

任何建议表示赞赏。

谢谢,

【问题讨论】:

    标签: java eclipse jar buildpath


    【解决方案1】:

    使该库在您的网络应用程序中可用的最简单方法是将该库的 jar 放到您的 WEB-INF/lib 目录中。

    如果您不想手动操作,请查看此链接以了解如何实现自动化:Adding 3rd party jars to WEB-INF/lib automatically using Eclipse/Tomcat

    【讨论】:

    • 好的,这就是解决方案。我将 cacheclient.jar 和 spymemcached.jar 放入 Web 应用程序的 WEB-INF/lib 目录中。然而 spymemcached.jar 也在 cacheclient.jar 的 lib 目录中。正如我所看到的,从库中的 jar 引用一个类本身并不支持,因此需要 One-Jar 或任何其他包装。
    【解决方案2】:

    在您的情况下,cacheclient.jar 依赖于 spymemcached.jar。但是当你的 cacheclient.jar 被构建时,它并没有和 spymemcached.jar 一起打包。因此,仅将 cacheclient.jar 复制到 tomcat/lib 文件夹中是不够的。首先,将 jar 文件复制到 tomcat lib 文件夹中并不是一个好习惯。

    你可以做的是复制你的两个罐子 servicewebapp.war > WenContent>WEB-INF>应该可以工作的库。

    【讨论】:

      猜你喜欢
      • 2011-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-12
      • 1970-01-01
      • 1970-01-01
      • 2013-02-27
      • 2012-12-06
      相关资源
      最近更新 更多