我在项目中有很多类,我想从脚本中编译所有类。问题是,类应按特定顺序编译,例如:我有一个名为 A 的类,它取决于名为 B 的类。假设类 B 取决于名为 C 的类。为了让我编译A类,我必须先编译B和C.
我是否可以使用一些工具来建立类的编译顺序,这样我就不必解析每个类并自行确定?我希望该工具可以保存一个文件,其中包含要编译的文件的顺序,以便我可以从我的脚本中解析它。
谢谢!
答案 0 :(得分:6)
如果您同时编译所有这些(在同一javac
调用中),则不需要执行您所描述的任何类型的操作。 javac
足够智能,可以同时编译您提供给它的所有文件,因此对于无序编译没有任何问题。
答案 1 :(得分:2)
Java编译器(Javac)已经构建了需要编译的所有类文件的依赖关系列表。这里真正的依赖是 包 - 而不是单个java文件 在同一个包中 (这是自动照顾的由编译器。)
使用 Ant 或 Maven 等工具指定和编译各种包中的所有文件,并生成最终版本。
如果您使用的是像NetBeans这样的IDE,它会自动为您执行此操作。或者,如果使用 JDepend
等工具答案 2 :(得分:1)
这些DAG排序问题通常通过拓扑排序来解决。有关说明,请参阅Wikipedia。我不知道是否有一个你正在寻找的工具,但是自己实施它应该不会那么困难。