簡體   English   中英

我可以生成日食工作區並手動/以編程方式進行投影嗎?

[英]Can I generate eclipse workspace and project manually/programmatically?

我需要測試JDT / LTK示例,並且為此,我需要創建Eclipse工作區並手動或以編程方式進行項目開發。

如何組織目錄,以便可以獲取有效的工作空間和項目對象? 我的意思是,Eclipse工作區和項目有什么特別之處?

IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
// 1. The name of the project in the workspace
IProject project = root.getProject("Hello");
project.open(null /* IProgressMonitor */);

IJavaProject javaProject = JavaCore.create(project);
// 2. The name of the Type (including the namespace)
IType itype = javaProject.findType("smcho.A");

我不確定是否可以從正在運行的工作空間中創建新的IWorkspace,但是應該能夠創建目錄和嵌套項目,這些項目可以在重新啟動Eclipse時用作工作空間。

另一種方法是啟動Eclipse測試環境。 有一個運行對話框,可讓您指定工作空間的根目錄。 我相信,如果您四處摸索,就可以推斷出如何以編程方式啟動(運行)該測試工作區。

以下代碼使用包和類動態創建Java項目。 也許對您有用。

// create a project with name "TESTJDT"
IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
IProject project = root.getProject("TESTJDT");
project.create(null);
project.open(null);

//set the Java nature
IProjectDescription description = project.getDescription();
description.setNatureIds(new String[] { JavaCore.NATURE_ID });

//create the project
project.setDescription(description, null);
IJavaProject javaProject = JavaCore.create(project);

//set the build path
IClasspathEntry[] buildPath = {
        JavaCore.newSourceEntry(project.getFullPath().append("src")),
                JavaRuntime.getDefaultJREContainerEntry() };

javaProject.setRawClasspath(buildPath, project.getFullPath().append(
                "bin"), null);

//create folder by using resources package
IFolder folder = project.getFolder("src");
folder.create(true, true, null);

//Add folder to Java element
IPackageFragmentRoot srcFolder = javaProject
                .getPackageFragmentRoot(folder);

//create package fragment
IPackageFragment fragment = srcFolder.createPackageFragment(
        "com.programcreek", true, null);

//init code string and create compilation unit
String str = "package com.programcreek;" + "\n"
    + "public class Test  {" + "\n" + " private String name;"
    + "\n" + "}";

        ICompilationUnit cu = fragment.createCompilationUnit("Test.java", str,
                false, null);

//create a field
IType type = cu.getType("Test");

type.createField("private String age;", null, true, null);

參考: 使用Eclipse JDT創建,訪問,加載項目

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM