22

在此处输入图像描述

“Java Build Path”对话框中的“Order and Export”选项卡有什么用?通过名称“order”,我可以猜测在 Plug-in Dependencies 之前搜索 JRE System 库,但为什么我们在 Build Path 中有“Export”?元素左侧的按钮是什么?

添加

这是我从Eclipse中借来的示例。

orderes.webapp 依赖于订单,但它很可能使用 ubl 和 catalog 中定义的类。

在此处输入图像描述

这种情况下,订单可以导出catalog和ubl,这样依赖它的包就可以使用catalog和ubl了。

在此处输入图像描述

还有更多关于“订购和出口”的信息。

  1. 左侧按钮的检查修改了.classpath要添加的文件,exported=true例如<classpathentry exported="true" kind="lib" path="lib/log4j-1.2.7.jar"/>.
  2. src 总是被选中,你不能取消选中它。

参考

4

5 回答 5

8

此选项卡似乎具有双重职责(有关少量详细信息, 请参阅此帮助页面的底部)。

一方面,它用作构建相关项目中使用的资源的解决顺序(“顺序”部分)。另一方面,它还用于定义此构建路径的哪些部分贡献给依赖项目(那些在“项目”选项卡中列出此项目以查看此首选项面板的)构建路径(“导出”部分)。

后一个功能是复选框存在于左侧的原因,正如您所问的(请注意,不能取消选中“-”符号,因为无法取消选择此项目中定义的源文件,如帮助文件中所述)。如果贡献项目不导出该资源,则期望来自贡献项目的某些资源的依赖项目将不会编译/运行。

编辑:请参阅此 SO 帖子以获取佐证。

于 2012-12-18T23:04:52.877 回答
5

Ilja Preuss的Coderanch 的一个很好的例子

假设您在项目 A 的构建路径中有 junit.jar。项目 B 依赖于项目 A。

现在您在项目 B 中编写一个 junit 测试。如果项目 A 导出 junit.jar,项目 B 可以在编译时使用它 - 无需更多操作。如果 A 不导出它,B 就不知道它——你也必须明确地将它放入它的构建路径中。

于 2014-01-22T17:36:43.140 回答
2

Order and Export正确猜到的选项卡显示了将包含在项目构建路径中的库的顺序。

使用按钮updown您可以根据项目需要调整库顺序。

于 2012-12-18T22:50:33.850 回答
2

为了回答您的具体问题,如果要将此项目添加为另一个 Java 项目的依赖项,则该命令将用于在运行另一个项目时解析该项目中的类和包。据说这些类和包被导出到/用于其他正在运行的项目的类路径。

于 2012-12-18T22:53:45.427 回答
2

有一种情况——我发现这很有用。我不得不使用一个 sun.* 类的 IBM jar。这个类也存在于本地 jre 中,但我的要求是使用 IBM 的类。但默认情况下,编译器只会引用本地 jdk 类。在 Eclipse 订单和导出选项卡中,我将外部 jar 移动到 JRE lib 之前。现在,编译器将引用 IBM jar 中的类而不是本地 JRE。

于 2013-03-09T11:34:12.427 回答