- 浏览: 536043 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
gaolegao2008:
如果报 is_volum 列名找不到之类的,我是从新部署了一个 ...
spring quartz 定时器报错 -
gaolegao2008:
部署到linux上时,还有一种情况就是mysql数据库区分大小 ...
spring quartz 定时器报错 -
qq123zhz:
yahier 写道 对我有帮助,但我看的一个demo程序,却没 ...
spring quartz 定时器报错 -
qq123zhz:
这个要在eclipse的插件环境下运行的,你不懂eclipse ...
GEF 自动布局 -
qq123zhz:
这个很久了,不记得啥时候写的了
json转为Map
public static IJavaProject createJavaProject(String projectName) { // 获取工作区 try { IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot(); // ///////////////////////////////////创建新项目/////////////////////////// final IProject project = root.getProject("xyz"); // 为项目指定存放路径,默认放在当前工作区 IPath projectPath = new Path("c:/myplugIn"); // 设置工程的位置 IWorkspace workspace = root.getWorkspace(); IProjectDescription description=null; if(project.exists()) project.delete(true, null); description = workspace.newProjectDescription(project.getName()); description.setLocation(projectPath); // 设置工程标记,即为java工程 String[] javaNature = description.getNatureIds(); String[] newJavaNature = new String[javaNature.length + 1]; System.arraycopy(javaNature, 0, newJavaNature, 0, javaNature.length); newJavaNature[javaNature.length] = "org.eclipse.jdt.core.javanature"; // 这个标记证明本工程是Java工程 description.setNatureIds(newJavaNature); // ///////////////////////////// NullProgressMonitor monitor = new NullProgressMonitor(); if(project.exists()) project.delete(true, null); project.create(description, monitor); project.open(IResource.BACKGROUND_REFRESH, new SubProgressMonitor( monitor, 1000)); // 转化成java工程 IJavaProject javaProject = JavaCore.create(project); // //////////////////////////////////添加JRE库//////////////////////////// try { // 获取默认的JRE库 IClasspathEntry[] jreLibrary = PreferenceConstants .getDefaultJRELibrary(); // 获取原来的build path // IClasspathEntry[] oldClasspathEntries = javaProject // .getRawClasspath(); List<IClasspathEntry> list = new ArrayList<IClasspathEntry>(); if(!list.containsAll(Arrays.asList(jreLibrary))) list.addAll(Arrays.asList(jreLibrary)); // if(!list.containsAll(Arrays.asList(oldClasspathEntries))) // list.addAll(Arrays.asList(oldClasspathEntries)); javaProject.setRawClasspath( list.toArray(new IClasspathEntry[list.size()]), null); } catch (JavaModelException e) { // TODO Auto-generated catch block e.printStackTrace(); } // //////////////////////////////////创建输出路径///////////////////////////// IFolder binFolder = javaProject.getProject().getFolder("bin"); if(!binFolder.exists()) binFolder.create(true, true, null); javaProject.setOutputLocation(binFolder.getFullPath(), null); // /////////////////////////设置Java生成器/////////////////////// 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); // /////////////////////////////创建源代码文件夹////////////////////////// // ///////////源文件夹和文件夹相似,只是使用PackageFragmentRoot进行了封装//////// IFolder srcFolder = javaProject.getProject().getFolder("src"); if(!srcFolder.exists()) srcFolder.create(true, true, null); // this.createFolder(srcFolder); // 创建SourceLibrary IClasspathEntry srcClasspathEntry = JavaCore .newSourceEntry(srcFolder.getFullPath()); // 得到旧的build path IClasspathEntry[] oldClasspathEntries = javaProject .readRawClasspath(); // 添加新的 List<IClasspathEntry> list = new ArrayList<IClasspathEntry>(); list.addAll(Arrays.asList(oldClasspathEntries)); list.add(srcClasspathEntry); // 原来存在一个与工程名相同的源文件夹,必须先删除 IClasspathEntry temp = JavaCore.newSourceEntry(new Path("/xyz")); if (list.contains(temp)) { list.remove(temp); } System.out.println(list.size()); javaProject.setRawClasspath( list.toArray(new IClasspathEntry[list.size()]), null); // ///////////////////////////////创建包////////////////////////// // IPackageFragmentRoot packageFragmentRoot = // javaProject.getPackageFragmentRoot(javaProject.getResource()); // 先找指定的源文件夹所在的IPackageFragmentRoot IPackageFragmentRoot packageFragmentRoot = javaProject .findPackageFragmentRoot(new Path("/xyz/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(\"中华人民共和国\");}}"; packageFragmentRoot = javaProject.findPackageFragmentRoot(new Path( "/xyz/src")); packageFragment = packageFragmentRoot .getPackageFragment("com.aptech.plugin"); packageFragment.createCompilationUnit("HelloWorld.java", javaCode, true, new NullProgressMonitor()); // return javaProject; } catch (JavaModelException e) { e.printStackTrace(); } catch (CoreException e) { e.printStackTrace(); } return null; } public static void run1(IJavaProject javaProject) { try { String main = "com.aptech.plugin.HelloWorld"; // 获取工作区 IVMInstall vmInstall = JavaRuntime.getVMInstall(javaProject); if (vmInstall == null) vmInstall = JavaRuntime.getDefaultVMInstall(); if (vmInstall != null) { IVMRunner vmRunner = vmInstall.getVMRunner(ILaunchManager.RUN_MODE); if (vmRunner != null) { String[] classPath = null; try { classPath = JavaRuntime.computeDefaultRuntimeClassPath(javaProject); } catch (CoreException e) { } if (classPath != null) { VMRunnerConfiguration vmConfig = new VMRunnerConfiguration(main, classPath); ILaunch launch = new Launch(null, ILaunchManager.RUN_MODE, null); vmRunner.run(vmConfig, launch, null); } } } // IVMInstall vm = JavaRuntime.getVMInstall(javaProject); // if (vm == null) // vm = JavaRuntime.getDefaultVMInstall(); // IVMRunner vmr = vm.getVMRunner(ILaunchManager.RUN_MODE); // String[] cp = JavaRuntime // .computeDefaultRuntimeClassPath(javaProject); // VMRunnerConfiguration config = new VMRunnerConfiguration(main, cp); // ILaunch launch = new Launch(null, ILaunchManager.RUN_MODE, null); // vmr.run(config, launch, null); } catch (CoreException e) { e.printStackTrace(); }
第一个方法是使用jdt创建一个工程,生成源代码,编译java源文件。
第二个方法是运行main方法。
发表评论
-
eclipse Resource 资料
2016-11-15 16:51 623IWorkspace/IWorkspaceRoot/IPro ... -
.docker/machine/machines/default/ca.pem: no such file or directory
2016-09-06 15:59 889Was doing adocker-machine env ... -
list.AddAll 去重复
2015-09-11 12:01 5924问题描述: 有List A和B,A、B中元素都是可保证 ... -
eclipse jdt builder的资料
2014-07-11 15:27 947eclipse jdt关于builder的英文资料。。。。 ... -
eclipse 插件开发 Setting the Java build path
2014-06-04 11:00 1224JDT Plug-in Developer Guide & ... -
xstream 下划线_问题
2013-12-30 10:18 4190最近在使用xtream 1.4.3,出现了如下的问题: ... -
RCP MessageConsole设置显示的最大行数
2013-09-05 11:34 981MessageConsole.setWaterMarks(5 ... -
freemarker 自定义freeMarker标签
2013-08-12 16:09 3891import java.io.IOException; i ... -
xstream javabean设置属性默认值的问题
2013-04-24 09:54 6573在xstream反序列化使用过程中发现,如果xml无该属 ... -
在使用xstream反序列化时遇到的问题
2013-04-24 09:42 1751public abstract class SBase { ... -
RCP 知识点
2013-03-14 15:10 1009获得工作区的所有工程: //获得workspace的所有 ... -
RCP FileSystem 文件系统
2013-02-19 10:42 1385public static File toLocalFile ... -
json转为Map
2013-01-19 22:27 32835package digu.pendant.util; ... -
eclipse4.x 去掉quick access
2013-01-11 14:57 4062/** * 去掉quick access * ... -
RCP 分页组件
2012-12-26 16:59 1512http://www.eclipse.org/nebula/w ... -
xstream 的高级用法,自定义输出结构
2012-12-19 14:35 2428public static void main(Stri ... -
jdt 核心知识
2012-11-27 21:39 1293jdt官方核心知识...................... ... -
两个osgi的例子程序
2012-11-20 10:21 1101osgi的例子....................直接上代 ... -
jfreechart 的官方例子,很全
2012-11-20 10:19 948jfreechart的官方的demon,很全。 -
SWT 隔行换色-自动宽高调整
2012-10-16 17:32 1717** * 创建:ZhengXi 2009-8-4 */ ...
相关推荐
首先,我们创建一个`Demo`类,它将用于构建AST并生成代码。在这个类中,`main`方法是整个代码生成的核心。首先,我们创建一个`AST`对象,它是构建所有Java元素的基础。接着,我们创建了一个`CompilationUnit`,它是...
Java动态编译是一种技术,允许程序在运行时将源代码转换为字节码并加载到JVM(Java虚拟机)中。这种能力使得Java应用程序能够根据需要编译和执行新的代码,增强了软件的灵活性和可扩展性。在给定的场景中,用户通过...
3. **编写代码分析器**:创建一个新的Java类,如`CodeAnalyzer`,并使用JDT API来解析和检查Java源代码。例如,我们可以检查类中是否存在未使用的变量或方法。 4. **运行插件**:通过Eclipse的插件开发环境(PDE)...
本文将指导您如何使用 Eclipse 调试 Java 程序代码,包括创建 Java 项目、创建 Java 类、运行 Java 程序和调试 Java 程序等步骤。 一、创建 Java 项目 在 Eclipse 中创建 Java 项目的步骤如下: 1. 在导航视图上...
首先,使用Eclipse JDT(Java开发工具)生成并解析Abstract语法树,然后将其转换为点格式。 在您的eclipse文件夹中写入了一个包含点格式AST的新文件。 到目前为止,点格式仅包含有关Java代码的基本信息。 例子: ...
### JAVA学习方法与数组 #### 一、Eclipse工具的使用及Java方法和数组 ...此外,还深入探讨了Java中的方法和数组,包括一维数组和二维数组的声明、创建、初始化和应用,为初学者提供了一个全面的学习指南。
### Java李兴华学习笔记之Java常用类库 #### 一、课程介绍及知识点概览 根据提供的资料,“Java李兴华学习笔记之Java常用类库”这份文档来源于北京MLDN软件实训中心的教学资料,主要涵盖了Java编程语言中常用类库...
在代码编辑器中,选中`main`方法,右键点击选择“运行”->“Java应用程序”。Eclipse会创建一个新的运行配置,并在控制台输出程序结果。 ### 6. 使用调试器 Eclipse内置的调试器是其强大功能之一。在代码中设置...
此外,Eclipse JDT Core的编译器提供了一种替代方案,它可以独立于Eclipse环境使用,例如在Play框架中用于动态编译Java源代码。 动态生成和执行Java字节码的一个应用场景是处理动态计算。例如,要计算表达式`(3+4)*...
一旦Eclipse安装和配置完毕,开发者就可以在其中创建项目,编写、编译、运行和调试Java代码,同时享受代码自动补全、重构、调试等高效开发功能。Eclipse还支持多种其他语言和框架,如JavaScript、Python、Spring等,...
2. **编写Java代码**:在新创建的Java文件(例如:“HelloWorld.java”)中编写Java代码。例如,可以编写一个简单的“Hello World!”程序: ```java public class HelloWorld { public static void main(String[]...
它位于`org.eclipse.jdt.core.dom`包内,提供了强大的功能来帮助开发者解析、生成及修改Java代码。 #### 基本概念 Eclipse AST主要由以下几个核心组件构成: 1. **ASTNode类及其派生类**:这些类用于描述Java源...
- 自动生成getter和setter方法:提高编码效率。 - 错误提示与修正建议:使用Ctrl+1快捷键快速修复代码错误。 #### JUnit测试 - **概念介绍**:JUnit是一个流行的Java单元测试框架,它通过执行预先定义的测试用例...
│ ViewMain.java │ ViewShouJi.java │ ViewTuiJian.java │ Welcome.java │ └─服务器端源代码 │ shop.sql │ └─AndroidWeb │ .classpath │ .mymetadata │ .project │ ├─.myeclipse ├─....
8. **项目组织**: 在Eclipse中,项目被组织为源代码目录结构,如src/main/java(源代码)、src/main/resources(资源文件)等。良好的项目结构有助于代码的管理和维护。 9. **调试与性能优化**: Eclipse的调试器是...
工程名是保存项目的位置,包名遵循Java编程语言的命名规则,活动名是自动生成的类名,通常是Android活动类的子类。程序名是最终应用程序的显示名称。还可以选择默认位置来保存项目生成的其他文件。 自动生成的代码...
4. **运行Java程序**:编译成功后,会生成一个 `HelloWorld.class` 文件。通过运行 `java HelloWorld`,你可以看到 "Hello, World!" 在控制台上打印出来。 从 "Hello-World-master" 这个文件夹名来看,这可能是一个...
#### 四、创建工程项目 - **安装SDK**:首先需要安装Android SDK,并配置好相应的环境变量。 - **安装Eclipse插件(ADT)**:确保Eclipse中安装了ADT插件。 - **更新ADT插件**:定期检查并更新ADT插件至最新版本。 - ...
它提供了许多额外的功能和插件支持,例如代码生成工具、数据库连接工具等。 - **Eclipse**:一款开源的集成开发环境,不仅支持Java开发,还支持其他多种编程语言。虽然功能上不如MyEclipse全面,但可以通过安装各种...