根据第一个项目将一个项目的 jar 库包含在另一个项目中
Include one project's jar libraries in another project depending on the first
我正在 Eclipse 中处理两个项目。
项目 A 依赖于项目附带的一些 jar
文件,这些 jar 文件已添加到项目 A 的“Java 构建路径”中的“库”选项卡 属性 在 Eclipse 中。
项目 B 依赖于项目 A,并在项目 A 的构建路径中的某些 jar
文件中直接使用某些 classes。
我假设将项目 A 添加到项目 B 的 Java 构建 Class 也会添加项目 A 的构建路径中已有的 jar,但事实并非如此。
我是否必须手动将这些 jar 添加到项目 B 的构建中 class,还是我忽略了一个设置?如果是这样,为什么这是一个有用的标准行为?
您必须手动将 jar 添加到项目 B 的 class路径。
添加项目依赖项意味着项目 A 依赖于项目 B 的编译输出。项目 B 的输出(其编译的 .class 文件)不包含它所依赖的 .jar 文件。
这是为什么?我不知道 eclipse 作者的基本原理,但我的猜测是他们想让 class 路径尽可能简单和冗长。如果您在 class 路径上有同一个库的多个版本,事情就会变得混乱。
在原版 java 中,您可以为 class 路径提供目录名称。当加载一个 class 时,JVM 将按顺序搜索这些目录。 Eclipse 鼓励采用更严格的方法,其中手动指定每个 jar。请注意,您可以一次添加多个 jar,因此将项目 B 的所有 jar 添加到项目 A 的 class 路径是微不足道的。
我正在 Eclipse 中处理两个项目。
项目 A 依赖于项目附带的一些 jar
文件,这些 jar 文件已添加到项目 A 的“Java 构建路径”中的“库”选项卡 属性 在 Eclipse 中。
项目 B 依赖于项目 A,并在项目 A 的构建路径中的某些 jar
文件中直接使用某些 classes。
我假设将项目 A 添加到项目 B 的 Java 构建 Class 也会添加项目 A 的构建路径中已有的 jar,但事实并非如此。
我是否必须手动将这些 jar 添加到项目 B 的构建中 class,还是我忽略了一个设置?如果是这样,为什么这是一个有用的标准行为?
您必须手动将 jar 添加到项目 B 的 class路径。
添加项目依赖项意味着项目 A 依赖于项目 B 的编译输出。项目 B 的输出(其编译的 .class 文件)不包含它所依赖的 .jar 文件。
这是为什么?我不知道 eclipse 作者的基本原理,但我的猜测是他们想让 class 路径尽可能简单和冗长。如果您在 class 路径上有同一个库的多个版本,事情就会变得混乱。
在原版 java 中,您可以为 class 路径提供目录名称。当加载一个 class 时,JVM 将按顺序搜索这些目录。 Eclipse 鼓励采用更严格的方法,其中手动指定每个 jar。请注意,您可以一次添加多个 jar,因此将项目 B 的所有 jar 添加到项目 A 的 class 路径是微不足道的。