使用ant build扫描类路径会产生不同的结果

时间:2012-04-10 07:54:43

标签: ant build java

我有一个Ant任务,它扫描整个Java项目类路径以查找某些类文件。

这种方法很天真:

  • 在搜索路径的根目录下创建一个File对象,然后对类文件进行递归搜索。
  • 对于每个类文件,使用带有loadClass()的CURRENT ClassLoader(this.getClass.getClassLoader)来加载类。
  • 检查加载的类是否是某个类的实例。

奇怪的是,如果我在调试模式下运行我的构建,并在JRE启动选项卡中选择“Separate JRE”,则构建大约需要8秒。 如果我选择“在与工作区相同的JRE中运行”,则构建大约需要40秒。

我的项目还包括10K左右的类文件。 在调试模式下,暂停构建显示大部分时间都浪费在loadClass()。

我的猜测是“Separate JRE”以某种方式导致构建以最小的类路径运行,因此类加载过程更快..?但它没有多大意义..

有人在这个问题上有领先优势吗?

提前致谢。

0 个答案:

没有答案