当我遇到无法解释的问题时,我正在尝试编译一个编译java项目源代码的ant构建。首先是我的蚂蚁目标:
<target name="compile-companymanage" depends="compile-company">
<mkdir dir="${companymanagebin}"/>
<javac destdir="${companymanagebin}">
<src path="${companymanagesrc}" />
<classpath refid="companyManage.classpath"/>
</javac>
</target>
运行后我得到错误:
[javac] project\src\com\company\manage\vo\InvoiceLineSupplierVM.java:31: error: class InvoiceLineSupplierVM is public, should be declared in a file named InvoiceLineSupplierVM.java
[javac] public class InvoiceLineSupplierVM
[javac] ^
[javac] 1 error
我们已经尝试了不同的项目,他们编译得很好。希望有人可以帮助我。
我们尝试使用相同的名称重命名文件和类。
答案 0 :(得分:1)
为了完整性而添加答案,并简化将来会遇到此错误的其他人的生活。
您的姓名中很可能有一个不可打印的字符,无论是您的姓名还是您的文件名。这将导致编译器具有或期望的不匹配。
要解决此问题,通常要做的是重命名所涉及的文件和类。重要的是,在重命名时,不要复制和粘贴名称,而是键入它。这将确保不可打印的字符不会像文件和类的名称那样结束。