【问题标题】:Import Error in Java Using Ant but not Eclipse使用 Ant 而不是 Eclipse 在 Java 中导入错误
【发布时间】:2012-05-07 21:47:13
【问题描述】:

如果我指定com.itextpdf.* 的子库,我可以很好地编译我的程序,但由于某种原因,如果我只使用import com.itextpdf.*,我的编译会失败。但是,就像我说的,如果我指定我正在使用的子库,例如

import com.itextpdf.text.Font.*;
import com.itextpdf.text.pdf.*;

一切都编译得很好。在它失败的情况下,我得到的错误是“包 com.itextpdf 不存在”,但我知道它确实存在。我将它正确地包含在构建路径中,并且 Eclipse 在任何情况下都不会给出任何编译错误。只有当我尝试使用 Ant 构建时才会出现该错误。

此时,我不介意指定要使用的子库以确保获得构建。但我很好奇,为什么 Ant 不允许这样做?

【问题讨论】:

    标签: java eclipse ant


    【解决方案1】:

    您和 Eclipse 将 java 命名空间视为一个层次结构。但是,在 Java 规范中,它们不是。 “com.itextpdf.text”和“com.itextpdf.text.Font”之间没有关系。它们是不同的字符串,故事的结尾。

    作为风格问题,您可能希望将 Eclipse 设置为自动组织您的导入并明确指定您在类的导入部分中使用的每个类。当“com.itextpdf.text.Font.String”和“com.itextpdf.text.pdf.String”都存在时,这可以避免歧义,但您只想引用其中一个。如果您在 emacs 或 vi 中编程,这种风格会非常乏味和不便,但在 Eclipse 中,它是自动的且不可见的,除非您滚动到文件顶部。

    【讨论】:

    • 是的,这就是发生的事情。 Ant 编译器无法理解 com.itextpdf.*; 这样基本级别的 import 语句,但 Eclipse 能够处理它。我同意,在未来,我会更明确地使用我的 import 语句。
    猜你喜欢
    • 2016-01-15
    • 1970-01-01
    • 2011-01-21
    • 1970-01-01
    • 2013-10-07
    • 1970-01-01
    • 2012-07-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多