当我遇到一个我无法解释的问题时,我正在尝试进行 ant 构建来编译 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
我们已经在不同的项目中尝试过,它们编译得很好。希望有人能帮助我。
我们尝试用相同的名称重命名文件和类。
最佳答案
添加答案是为了完整性,并简化将来遇到此错误的其他人的生活。
您的名字(类(class)名或文件名)中很可能包含不可打印的字符。这将导致编译器具有或期望的不匹配。
为了解决这个问题,通常所做的就是重命名所涉及的文件和类。重要的是,重命名时,不要复制并粘贴名称,而是将其键入。这将确保不可打印的字符不会出现在文件和类的名称中。
关于类名 antbuild 的 Javac 编译器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28111185/