我在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得到了相同的结果。 谢谢, 汤姆
答案 0 :(得分:4)
值得检查的一件事是,无意中将罐子作为非二进制文件添加到CVS中。
您可以使用
将它们标记为二进制cvs admin -kb <jar>
cvs update -A <jar>
在Windows系统上,检出非二进制文件可能会导致转换为一个字符 对两个字符的行结尾 - 它破坏了像jar这样的真正二进制文件。 在unix / linux系统上检出同一个文件时,你可能不会注意到这一点 在那里结账时,“文本”文件没有特殊处理。
此外,如果由于行结束转换和关键字替换而从Windows系统签入文本文件,二进制文件可能会损坏。