- 浏览: 28420 次
- 性别:
- 来自: 广州
文章分类
最新评论
第一步,新建一个普通的Java工程。在网上,我找到了网友们的实现,经过测试是能正常使用的。
import java.util.ArrayList; import java.util.Arrays; import java.util.List; import org.eclipse.core.resources.ICommand; import org.eclipse.core.resources.IFolder; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IProjectDescription; import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.IWorkspace; import org.eclipse.core.resources.IWorkspaceRoot; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.core.runtime.Path; import org.eclipse.core.runtime.SubProgressMonitor; import org.eclipse.jdt.core.IClasspathEntry; import org.eclipse.jdt.core.IJavaProject; import org.eclipse.jdt.core.IPackageFragment; import org.eclipse.jdt.core.IPackageFragmentRoot; import org.eclipse.jdt.core.JavaCore; import org.eclipse.jdt.core.JavaModelException; import org.eclipse.jdt.ui.PreferenceConstants; public class CreateProject { public static void createJavaProject(String projectName) { // 获取工作区 IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot(); // 创建新项目 final IProject project = root.getProject(projectName); // 设置工程的位置 // 为项目指定存放路径,默认放在当前工作区 // IPath projectPath = new Path("");//自己设置 IWorkspace workspace = root.getWorkspace(); final IProjectDescription description = workspace .newProjectDescription(project.getName()); description.setLocation(null); // 设置工程标记,即为java工程 String[] javaNature = description.getNatureIds(); String[] newJavaNature = new String[javaNature.length + 1]; System.arraycopy(javaNature, 0, newJavaNature, 0, javaNature.length); newJavaNature[javaNature.length] = JavaCore.NATURE_ID; // 这个标记证明本工程是Java工程 description.setNatureIds(newJavaNature); // try { NullProgressMonitor monitor = new NullProgressMonitor(); project.create(description, monitor); project.open(IResource.BACKGROUND_REFRESH, new SubProgressMonitor( monitor, 1000)); } catch (CoreException e) { e.printStackTrace(); } // 转化成java工程 IJavaProject javaProject = JavaCore.create(project); // 添加JRE库 try { // 获取默认的JRE库 IClasspathEntry[] jreLibrary = PreferenceConstants .getDefaultJRELibrary(); // 获取原来的build path IClasspathEntry[] oldClasspathEntries = javaProject .getRawClasspath(); List list = new ArrayList(); list.addAll(Arrays.asList(jreLibrary)); list.addAll(Arrays.asList(oldClasspathEntries)); javaProject.setRawClasspath((IClasspathEntry[]) list .toArray(new IClasspathEntry[list.size()]), null); } catch (JavaModelException e) { e.printStackTrace(); } // 创建输出路径 IFolder binFolder = javaProject.getProject().getFolder("bin"); try { binFolder.create(true, true, null); javaProject.setOutputLocation(binFolder.getFullPath(), null); } catch (CoreException e) { e.printStackTrace(); } // 设置Java生成器 try { IProjectDescription description2 = javaProject.getProject() .getDescription(); ICommand command = description2.newCommand(); command.setBuilderName("org.eclipse.jdt.core.javabuilder"); description2.setBuildSpec(new ICommand[] { command }); description2 .setNatureIds(new String[] { "org.eclipse.jdt.core.javanature" }); javaProject.getProject().setDescription(description2, null); } catch (CoreException e) { e.printStackTrace(); } // 创建源代码文件夹 // 源文件夹和文件夹相似,只是使用PackageFragmentRoot进行了封装 IFolder srcFolder = javaProject.getProject().getFolder("src"); try { srcFolder.create(true, true, null); // 创建SourceLibrary IClasspathEntry srcClasspathEntry = JavaCore .newSourceEntry(srcFolder.getFullPath()); // 得到旧的build path IClasspathEntry[] oldClasspathEntries = javaProject .readRawClasspath(); // 添加新的 List list = new ArrayList(); list.addAll(Arrays.asList(oldClasspathEntries)); list.add(srcClasspathEntry); // 原来存在一个与工程名相同的源文件夹,必须先删除 IClasspathEntry temp = JavaCore.newSourceEntry(new Path("/" + projectName)); if (list.contains(temp)) { list.remove(temp); } javaProject.setRawClasspath((IClasspathEntry[]) list .toArray(new IClasspathEntry[list.size()]), null); } catch (CoreException e) { e.printStackTrace(); } // ///////////////////////////////创建包////////////////////////// // IPackageFragmentRoot packageFragmentRoot = // javaProject.getPackageFragmentRoot(javaProject.getResource()); // 此处得到的src目录只读 try { // 先找指定的源文件夹所在的IPackageFragmentRoot IPackageFragmentRoot packageFragmentRoot = javaProject .findPackageFragmentRoot(new Path("/" + projectName + "/src")); // 根据IPackageFragmentRoot创建IPackageFragment,IPackageFragment就是包了 IPackageFragment packageFragment = packageFragmentRoot .createPackageFragment("com.aptech.plugin", true, null); // //////////////////////////////////创建Java文件//////////////////////// String javaCode = "package com.aptech.plugin;public class HelloWorld{public static void main(String[] args){System.out.println(\"中华人民共和国\");}}"; packageFragment.createCompilationUnit("HelloWorld.java", javaCode, true, new NullProgressMonitor()); } catch (JavaModelException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } } }
发表评论
-
GEF简介与事件机制
2014-08-07 09:56 3598一、GEF简介 GEF(Graphica ... -
GEF入门参考
2014-08-07 09:37 613一些网站 http://www.ibm.com/develo ... -
SWT-GEF事件转义相关类
2014-08-07 09:35 843在Draw2d中,Lightweight是gef图形系统的”s ... -
GEF中Editor创建的时序图
2014-08-07 09:33 581以eclipse网站上例子A Shape Diagram Ed ... -
org.eclipse.core.resources.builders扩展点-转载
2013-10-12 14:28 2409org.eclipse.core.resources. ... -
org.eclipse.ui.decorators 使用(转)
2013-10-12 14:24 642org.eclipse.ui.decorators这个扩展点可 ... -
org.eclipse.ui.menus扩展点
2013-06-06 11:17 1881eclipse插件开发中 ... -
Eclipse开发中的 NoClassDefFoundError
2013-03-26 16:18 1207在eclipse插件开发过程中,需要引入很多的第三方j ... -
Eclipse事件与通讯
2013-01-18 15:58 971在开发Eclipse插件开发rcp过程中需要用到很多的 ... -
使用代码生成插件工程,脱离eclipse本身的新建工程向导(3)
2012-11-22 10:58 1179在第二步中需要有个PluginClassCodeGen ... -
使用代码生成插件工程,脱离eclipse本身的新建工程向导(2)
2012-11-22 10:52 3746在第一步完成后,我从pde的向导代码入手看eclips ... -
插件开发基础类(转载)
2012-09-25 16:36 7761..IWorkbench: workbench是e ... -
获取需要平台的信息
2012-09-25 16:16 765开发rcp程序的时候,需要获取许多平台和编辑器的相关信 ...
相关推荐
在本节中,我们探讨了Eclipse代码生成器插件开发的相关知识点,包括插件开发基本概念、Wizard向导制作、plugin.xml文件、Wizard类、新建项目向导和自定义Wizard页面等。这些知识点对于开发Eclipse插件非常重要,了解...
Java工程脱离Eclipse运行是指将Java工程从Eclipse中独立出来,生成一个可以独立运行的JAR包。下面是实现这一过程的详细步骤: 1. 选择要导出的项目,右键点击选择“导出” 2. 在弹出的框中选中“jar 文件” 3. 选择...
在Eclipse中,安装和使用代码行数统计插件非常简单。首先,用户需要打开"Windows"菜单,然后选择"Show View",接着在弹出的子菜单中找到"Other"选项。在"Other"对话框中,你可以搜索与代码统计相关的插件,比如"PMD...
Eclipse是广受欢迎的Java集成开发环境,而`mybatis-generator eclipse自动生成代码插件离线安装包`则是为了让开发者在没有网络连接的情况下也能在Eclipse中安装并使用MBG。 安装MBG插件的过程分为以下几个步骤: 1...
使用Eclipse插件进行代码行数统计通常有以下步骤: 1. 安装插件:首先,你需要将这个名为"LineCount"的压缩包导入到Eclipse中。这可以通过Eclipse的“Help”菜单 -> "Install New Software" -> "Add"来完成,然后...
通过学习这个插件的源码,开发者不仅可以提高自己的编程效率,还能深入理解Android插件开发,包括Eclipse插件API的使用、XML解析、代码生成等技术。这对于提升个人技能和理解Android生态系统的底层机制有着积极的...
MyBatis Generator(MBG)是一款强大的Eclipse插件,专为简化数据库操作而设计,它能够自动根据数据库表结构生成Java实体类、Mapper接口及XML配置文件等,极大地提升了开发效率。在Java Web开发中,MyBatis ...
eclipse插件生成ssh框架和ssi框架
标题中的"eclipse的mybatis逆向工程生成插件"指的是将Mybatis Generator集成到Eclipse中,以方便开发者快速生成基于数据库表结构的Java代码。逆向工程通常是指从现有数据库结构出发,自动生成与之对应的源代码,使得...
2. 找到并选择适合的UML反向工程插件,如“GenMyModel”、“Eclipse UML2 Tools”等。 3. 按照提示进行安装,可能需要重启Eclipse以使插件生效。 4. 安装完成后,可以在Eclipse的“Package Explorer”或“Project ...
它极大地简化了基于MyBatis框架的数据访问层(DAO)代码编写工作,通过数据库表反向工程实现代码自动化生成。这款插件适用于集成到Eclipse或MyEclipse环境中,帮助开发者快速构建项目。 首先,让我们深入了解一下...
单独jar包,myBatis代码生成eclipse插件,拷贝到eclipse的dropins文件夹
本篇文章将详细介绍"Eclipse中用于统计代码量的插件"——org.holon.statistic.lines_1.0.0,以及如何使用这个插件来提升您的工作效率。 org.holon.statistic.lines_1.0.0是一款针对Eclipse设计的代码行统计工具,它...
基于Eclipse的RCP插件开发,集成MyBatis的插件代码生成功能,另外使用Freemarker来生成代码,插件绝对原创,目前市面上没有.本人还没公开发布.所以好不好使用了才知道,10分不高.后续会发布的github上.并提供源代码.谢谢...
《基于Eclipse插件的简易代码生成工具》是一篇毕业设计论文,主要探讨了如何利用Eclipse平台开发一款能够自动生成代码的插件。在软件开发过程中,编码工作占据了大量时间,尤其对于重复性高的代码段,手动编写既耗时...
mybatis-eclipse插件及生成代码说明 包含mybatis-eclipse插件、插件的安装说明以及通过一个简单的实例描述如何在eclipse中使用mybatis-eclipse插件自动生成Mybatis相关的model、dao、Mapping等文件。 详见:...
【Eclipse插件内幕-插件开发-如何定制一个向导】 在Eclipse插件开发中,定制向导是创建用户友好且高效的工作流程的关键步骤。向导是一种引导用户逐步完成复杂任务的交互式界面,它能够简化和规范化数据输入过程。在...
Eclipse是一款广泛使用的Java集成开发环境(IDE),它支持各种扩展和插件以增强功能。在Java开发中,数据传输对象(DTO)和持久化对象(POJO)是常见的概念,它们用于在不同层之间传递数据。手动创建这些类可能会...