2016-04-11 50 views
3

我有一个java项目,包含所有二进制文件,源文件和库。 我已经将它放在一个eclipse工作区中,为了某种目的,我想将它转换成一个eclipse项目。 我为以下任务编写了以下代码行。以编程方式创建eclipse项目时的意外行为

IWorkspace workspace = ResourcesPlugin.getWorkspace(); 
IWorkspaceRoot root = workspace.getRoot(); 
IPath rootPath = root.getLocation(); 
File rootFile = rootPath.toFile(); 
File[] contents = rootFile.listFiles(); 


for(File file : contents) { 
    if(file.isDirectory() && !file.getName().startsWith(".")) { 


     File[] projectContents = file.listFiles(); 

     //First create a simple project of type org.eclipse.core.resources.IProject: 
     IProject project = root.getProject(file.getName()); 
     if(!project.exists()) { 
      project.create(null); 
     } 
     else { 
      project.refreshLocal(IResource.DEPTH_INFINITE, null); 
     } 
     if (!project.isOpen()) { 
      project.open(null); 
     } 



     IFolder binFolder = project.getFolder("bin"); 

     if(!binFolder.exists()) { 
      binFolder.create(false, true, null); 
     } 
     //Now we can create our Java project 
     IJavaProject javaProject = JavaCore.create(project); 
     javaProject.setOutputLocation(binFolder.getFullPath(), null); 


     <Remaining lines of code> 
    } 
} 

现在我想用我已经建好的类文件。所以我评论了以下几行:

 IFolder binFolder = project.getFolder("bin"); 

     if(!binFolder.exists()) { 
      binFolder.create(false, true, null); 
     } 

     javaProject.setOutputLocation(binFolder.getFullPath(), null); 

但即使现在bin文件夹也被创建并且在其中生成了类文件。而这些课程档案并不是我所拥有的,因为他们在他们的房产中都有最新的时间戳记。

我很确定这是由于这条线。

 IJavaProject javaProject = JavaCore.create(project); 

有谁能告诉我为什么会发生这种情况。我甚至没有添加这些专门用于构建项目的代码行。

  if(!javaProject.hasBuildState()) { 
       project.build(IncrementalProjectBuilder.INCREMENTAL_BUILD, null); 
      } 

我会很感激,如果你也能告诉我如何在Java项目Eclipse项目编程方式使用二进制文件,源文件和库,我有转换。

回答

0

您可以使用导入java项目与现有的源向导。 我个人使用的另一个快捷方式是,以所需的名称创建一个新的空Java项目,将现有Java项目的所有资源(src,lib等)复制到除bin和.project文件之外的新项目中。然后,如果需要,从项目属性中配置源目录和库。

+0

我不想使用eclipse的GUI,而是以编程方式进行。 –

相关问题