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项目编程方式使用二进制文件,源文件和库,我有转换。
我不想使用eclipse的GUI,而是以编程方式进行。 –