java - 了解 Eclipse 中的外部 jar

标签 java eclipse jar classpath

所以我对 Java 尤其是 Eclipse 还很陌生,所以请原谅我的无知。我从服务器上获取了一个项目并将其本地复制到我的计算机上。当我打开工作区时,由于无法找到 jar ,我遇到了很多错误。这是有道理的,因为我没有与我复制的服务器相同的目录结构。因此,如果我将相同的外部 jar 复制到我的计算机上并将其编译成 jar 并将其复制回服务器,它会起作用吗?或者它会失败,因为现在外部 jar 位于与预期不同的位置?

另外,我应该将外部 jar 放入常规 jar 中以避免这个问题吗?

最佳答案

你应该没事。 Java 使用所谓的类路径来定位依赖项。开发计算机上的类路径可能有所不同,但只要所有依赖项都位于生产中的类路径上,一切都应该有效。

为了避免目录结构同步问题,最常见的方法是使用 Maven - 它将为您管理所有依赖项(但您必须管理 pom.xml - Maven 的项目描述符)。有点笨拙的方法是在项目中添加依赖项,但是最终可能会出现许多项目必须包含相同的 jar,然后会出现版本冲突等问题。

对于小型项目,您可以自己管理依赖项,但是较大的项目需要更仔细地考虑策略(例如 Maven)。

对于可执行 jar,请确保 :\META-INF\MANIFEST.MF 中的类路径条目正确,例如当它引用其他 jar 时,这些 jar 将出现在生产中。例如,假设我们有 ourjar.jar 并假设这是其 MANIFEST.MF 中的一个片段:

Class-Path: lib/myteamjar.jar

然后预计会出现以下目录结构:

lib/myteamjar.jar
ourjar.jar

关于java - 了解 Eclipse 中的外部 jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10398382/

相关文章:

java - 如何在 Java 中导入 JAR 和包

java sql列插入

java - 从字符串中删除某些单词

gradle - Gradle插件输出名称

java - 运行 Android Support v4 库演示程序

java - 为什么这些终端符号不是独立的?

java - 如何在仅给出 jar 文件名的情况下获取 jar 文件在类路径中的绝对路径?

java - 如何从 Java 方法返回 2 个值?

java - 可以在其他 Bean session (远程或本地)类的方法中注入(inject)(@EJB)Bean

java - 安装 Gradle Eclipse 插件后,Gradle 构建文件夹未显示