在javac中强制执行包声明检查

时间:2013-12-17 14:38:27

标签: java eclipse build package javac

当我有一个与目录结构不匹配的包声明时,Eclipse会给我一个错误,例如“声明的包”package-name“与期望的包”directory-path“不匹配。这很好。但是并非我项目中的每个人都使用Eclipse。

有没有办法在构建过程中使用javac进行检查?

1 个答案:

答案 0 :(得分:1)

Eclipse根据源文件所在的目录层次结构验证包名称。

但是,在我看来,javac没有任何此类功能可用。你将不得不求助于你的罪魁祸首会抛出的基本错误:

/* ClassA with package statement */
package com.example;

public class ClassA {

}

现在如果你放置另一个在同一个包中使用的类,如果你不在其中编写package语句:

/* ClassB without package statement */
import com.example.ClassA;

public class ClassB {

}

您将在编译日志中收到以下错误,指出罪魁祸首类:

$ javac -d . ClassA.java
$ javac -d . ClassB.java
ClassB.java:1: package com.example does not exist
import com.example.Circle;
                  ^

希望有所帮助!