gpt4 book ai didi

java - 以编程方式创建 Eclipse 项目时出现意外行为

转载 作者:行者123 更新时间:2023-12-02 04:29:07 27 4
gpt4 key购买 nike

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

关于java - 以编程方式创建 Eclipse 项目时出现意外行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36549891/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com