-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathEclipseUtil.java
108 lines (86 loc) · 3.58 KB
/
EclipseUtil.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
package javaToolkit.lib.utils;
import java.io.File;
import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IProjectDescription;
import org.eclipse.core.resources.IWorkspaceRoot;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPlatformRunnable;
import org.eclipse.jdt.core.IClasspathEntry;
import org.eclipse.jdt.core.ICompilationUnit;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.IPackageFragment;
import org.eclipse.jdt.core.IPackageFragmentRoot;
import org.eclipse.jdt.core.IType;
import org.eclipse.jdt.core.JavaCore;
import org.eclipse.jdt.launching.JavaRuntime;
import changeassistant.multipleexample.util.PropertyLoader;
public class EclipseUtil implements IPlatformRunnable {
public static IWorkspaceRoot createWorkspace(String workspaceDir) {
// PropertyLoader.load(new File(Constants.projectDir + "datasetConfig/properties"));
// PropertyLoader.props.setProperty("Project_Home_Path", workspaceDir);
IWorkspaceRoot workSpace = ResourcesPlugin.getWorkspace().getRoot();
return workSpace;
}
public static IProject createNewPrject(IWorkspaceRoot root, String projectName, String fileName, String srcStr) {
/**
* code from
*/
IProject project = null;
try {
// create a project with name
project = root.getProject(projectName);
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")) };
javaProject.setRawClasspath(buildPath, project.getFullPath().append("bin"), null);
// IFolder binFolder = project.getFolder("bin");
// binFolder.create(false, true, null);
// javaProject.setOutputLocation(binFolder.getFullPath(), null);
IFolder sourceFolder = project.getFolder("src");
sourceFolder.create(false, true, null);
// Add folder to Java element
IPackageFragmentRoot srcFolder = javaProject.getPackageFragmentRoot(sourceFolder);
// create package fragment
IPackageFragment fragment = srcFolder.createPackageFragment("main", true, null);
writeSRCtoPrject(project, javaProject, fileName, srcStr);
} catch (CoreException e) {
System.out.println("Create Project "+projectName+" failed!");
e.printStackTrace();
}
System.out.println("Create Project "+projectName+" successfully!");
return project;
}
public static void writeSRCtoPrject(IProject project, IJavaProject javaProject, String fileName, String srcStr) {
/**
* code from
*/
try {
ICompilationUnit cu = javaProject.getPackageFragmentRoot(project.getFolder("src"))
.getPackageFragment("main").createCompilationUnit(fileName, srcStr, false, null);
} catch (CoreException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return;
}
// @Override
// public Object run(Object args) throws Exception {
// String projectName = "testP";
// IWorkspaceRoot workSpace = createWorkspace(Constants.workspaceDir);
// // init code string and create compilation unit
// String str = "package com.programcreek;" + "\n" + "public class Test {" + "\n" + " private String name;" + "\n"
// + "}";
// createNewPrject(workSpace, projectName, "test.java", str);
// System.out.println("Finished!");
// return null;
// }
}