【问题标题】:Why doesn't Eclipse recognize new JAR?为什么 Eclipse 不能识别新的 JAR?
【发布时间】:2011-06-05 10:16:07
【问题描述】:

我从队友那里收到了一个新的 SOAP 服务客户端 JAR,并且正忙于将它集成到我的应用程序中。我已将 JAR 放入适当的路径,覆盖以前的版本。我刷新了我的工作区,执行了清理和构建,但是...

...我无法通过智能感知看到 JAR 中的任何类,即使我从 JAR 使用的代码将正确编译和执行。此外,Eclipse 仍在尝试使用以前版本的 JAR,因为当我执行“修复导入”时,它会重新导入旧类,而不是新类。

代码构建并运行,但我必须绝对引用类,而不是相对:

 org.acmewidgets.soap.inputs.HeaderType header = new org.acmewidgets.soap.inputs.HeaderType()

而不是

 HeaderType header = new HeaderType()

以前版本的 JAR 不需要这个。

我如何“强制”Eclipse 放弃旧的引用并使用新的?或者,Eclipse 运行良好,而我的新 JAR 是可疑的?

谢谢!

【问题讨论】:

  • 你添加到Eclipse中的项目类路径了吗?右键单击项目并转到属性 > Java 构建路径 > 库。您可能会发现旧的 JAR 仍然列在那里,而不是新的 JAR。
  • 您是否也使用 Windows 资源管理器(或 Mac Finder,或命令行等)复制了 JAR 文件?如果您在 Eclipse 之外进行这些更改,Eclipse 不会自动获取对文件系统的更改。尝试刷新项目(右键单击 > 刷新)。

标签: java eclipse import jar


【解决方案1】:

您必须将其添加为“User Library”。

【讨论】:

    【解决方案2】:

    看起来有什么东西坏了。如果再次关闭和打开项目没有帮助,请按顺序尝试:

    • 如果您的项目依赖于工作区中的其他项目,您最终可能会在类路径中使用 两个 JAR。运行测试或您的应用程序,然后切换到“调试”透视图,选择项目(已终止),然后从上下文菜单中选择“属性”。这将为您提供所使用的类路径。

      将其复制到文本编辑器并搜索 JAR 文件并确保在类路径中只有一个副本。

    • 在您的工作区中搜索 JAr 文件。也许还有第二个你没想到的副本。

    • 创建一个新工作区(不要删除旧工作区)并导入项目。这有帮助吗?

    • 试用最新版本的 Eclipse (3.6.1)

    【讨论】:

    • 我认为在完成这些步骤之前刷新项目是个好主意。 OP 可能只是使用另一个程序复制了文件...Eclipse 不会自动检测在 Eclipse 之外进行的更改。
    • 宾果游戏!关闭和重新打开项目是我没有尝试过的一件事。奇怪的是它起作用了,但是关闭和打开 Eclipse 本身却没有。谢谢!
    • @IVR,缓存问题。请注意,Eclipse 实际上具有升级 jar 的功能 - 也许下次使用?
    • 检查您是否打开了“自动刷新工作区”选项。
    • 真的在危机中帮助了我,我的类路径中有其他项目引用同一个 jar 的多个版本。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-08
    • 2019-10-04
    • 1970-01-01
    • 2011-06-03
    • 2014-10-28
    • 2011-07-25
    • 1970-01-01
    相关资源
    最近更新 更多