5
まず、IProjectを使用してJavaプロジェクトを作成し、それをIFacetedProjectを使用して動的Webプロジェクトに変換することによって動的Webプロジェクトを作成しようとしましたが、静的プロジェクトのみが作成されています。やったことがあります... plsは私を助けます。Eclipse:プログラムによる動的なWebプロジェクトの作成
IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
IProject project = root.getProject("TESTJDT");
try
{
project.create(null);
project.open(null);
IProjectDescription description = project.getDescription();
description.setNatureIds(new String[] { JavaCore.NATURE_ID });
project.setDescription(description, null);
IJavaProject javaProject = JavaCore.create(project);
IClasspathEntry[] buildPath = {
JavaCore.newSourceEntry(project.getFullPath().append("src")),
JavaRuntime.getDefaultJREContainerEntry() };
javaProject.setRawClasspath(buildPath,project.getFullPath().append(
"bin"), null);
IFolder folder = project.getFolder("src");
folder.create(true, true, null);
IPackageFragmentRoot srcFolder = javaProject.getPackageFragmentRoot(folder);
IPackageFragment fragment = srcFolder.createPackageFragment("com.programcreek", true, null);
String str = "package com.programcreek;" + "\n"
+ "public class Test {" + "\n" + " private String name;"+ "\n" + "}";
ICompilationUnit cu = fragment.createCompilationUnit("Test.java", str,false, null);
IType type = cu.getType("Test");
type.createField("private String age;", null, true, null);
IFacetedProject facetedProject =
ProjectFacetsManager.create(project, true, null);
IProjectDescription description1 = project.getDescription();
description1.setNatureIds(new String[]
{"org.eclipse.jem.workbench.JavaEMFNature",
"org.eclipse.jdt.core.javanature",
"org.eclipse.wst.common.project.facet.core.nature",
"org.eclipse.wst.common.modulecore.ModuleCoreNature",
"org.eclipse.wst.jsdt.core.jsNature"});
project.setDescription(description1, null);
IProjectFacet wstWebFacet = ProjectFacetsManager.getProjectFacet
(IModuleConstants.WST_WEB_MODULE);
facetedProject.installProjectFacet
(wstWebFacet.getDefaultVersion(), null, null);
既存の動的Webプロジェクトの '.project'を調べ、作成した行によってプログラムによってJava自然で新しいプロジェクトを手動で拡張することができます。更新されると、ワークスペースはこれを予期します。 –