加载java项目的类

时间:2014-05-06 18:18:24

标签: java eclipse

我使用下面的代码

加载所选项目的所有源类
IPackageFragment[] packages = javaProject.getPackageFragments();
for (IPackageFragment mypackage : packages) {      
if (mypackage.getKind() == IPackageFragmentRoot.K_SOURCE) {
    for (ICompilationUnit unit : mypackage.getCompilationUnits()) {
        // code here
    }    
}

但是,请考虑具有以下结构的项目

ProjectName - > src - >主要 - >组织 - > odlabs - > wiquery - >核心 - > JQueryAjaxOption.java

               -> test -> org -> odlabs -> wiquery -> core -> JQueryAjaxOptionTestCase.java

现在,上面两个类具有相同的包但位于不同的文件夹中。

我在这里有两个问题

  1. 我可以在上面的代码中排除测试文件夹吗?我查了课“IPackageFragmentRoot”但找不到任何东西......
  2. 项目在概念上可以包含两个具有相同包名的类的不同文件夹(除“test”文件夹外)吗? (技术上是的,有可能)。

1 个答案:

答案 0 :(得分:0)

  1. 是的,您可以排除测试文件夹。例如,如果您使用maven,则可以指明哪个文件夹包含您的测试类:http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html

  2. 您可以拥有包含许多源文件夹的项目。就像你提到的那样," main"和"测试"。但测试类不包含在最终的jar中。如果两个班级都在"主要"然后它会引起混淆,你应该考虑重命名其中一个。