【问题标题】:Unexpected behaviour while creating a eclipse project programmatically以编程方式创建 Eclipse 项目时出现意外行为
【发布时间】:2016-08-01 16:27:32
【问题描述】:

我有一个包含所有二进制文件、源文件和库的 java 项目。 我已将它放在 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 项目,我将不胜感激。

【问题讨论】:

    标签: java eclipse eclipse-plugin eclipse-rcp


    【解决方案1】:

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

    【讨论】:

    • 我不想使用 Eclipse 的 GUI,而是以编程方式进行。
    猜你喜欢
    • 2013-02-23
    • 1970-01-01
    • 2015-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-06
    • 2011-04-30
    相关资源
    最近更新 更多