Windows上的CVS签出ANT Build:无效的CEN头(签名错误)

时间:2010-09-30 13:55:00

标签: java ant cvs cvsnt

我在CVS中有代码,当我检查代码并在我的Windows框上执行ANT构建时,我收到以下错误。

Buildfile: C:\Java\JDeveloper\library\build.xml

compile:
    [javac] Compiling 181 source files to C:\Java\JDeveloper\library
    [javac] error: error reading C:\Java\JDeveloper\library\lib\jdom.jar; invalid CEN header (bad signature)
    [javac] error: error reading C:\Java\JDeveloper\library\lib\tidy.jar; invalid CEN header (bad signature)
    [javac] error: error reading C:\Java\JDeveloper\library\lib\parser.jar; invalid CEN header (bad signature)
    [javac] error: error reading C:\Java\JDeveloper\library\lib\syslog.jar; invalid CEN header (bad signature)
    [javac] error: error reading C:\Java\JDeveloper\library\lib\regexp.jar; invalid CEN header (bad signature)
    [javac] 5 errors

BUILD FAILED

我已多次检查过它。这段代码将在我的linux盒子上签出并构建好。我已经尝试从命令行使用CVS检查它,使用JDeveloper和Eclipse在Windows XP框中使用相同的结果。我在网上看到JAR已损坏的帖子,但这看起来很奇怪,因为相同的JAR将在linux盒子上正常编译。我尝试删除和使用新的JAR。从命令行我使用CVSNT得到了相同的结果。 谢谢, 汤姆

1 个答案:

答案 0 :(得分:4)

值得检查的一件事是,无意中将罐子作为非二进制文件添加到CVS中。

您可以使用

将它们标记为二进制
cvs admin -kb <jar>
cvs update -A <jar>

在Windows系统上,检出非二进制文件可能会导致转换为一个字符 对两个字符的行结尾 - 它破坏了像jar这样的真正二进制文件。 在unix / linux系统上检出同一个文件时,你可能不会注意到这一点 在那里结账时,“文本”文件没有特殊处理。

此外,如果由于行结束转换和关键字替换而从Windows系统签入文本文件,二进制文件可能会损坏。