contains:判断是否存在指定的资源。
来源:互联网 发布:恶意软件图片 编辑:程序博客网 时间:2024/05/17 10:03
(4) IJavaModel
此接口表示根 Java 元素,对应于工作空间。是所有具有 Java 性质的项目的父类。它对于Java项目的作用和IWorkspaceRoot对于IProject的作用相似。
contains:判断是否存在指定的资源。
getJavaProject:返回指定名字的Java项目,返回值类型是IJavaProject。
getJavaProjects:返回所有的Java项目,返回值类型是IJavaProject[]。
getWorkspace:返回所在的工作空间。
(5) IJavaProject
此接口表示Java项目。
IJavaElement findElement(IPath path):返回项目的path路径下的Java元素。
IPackageFragment findPackageFragment(IPath path):返回项目的path路径下的IPackageFragment。
IPackageFragmentRoot findPackageFragmentRoot(IPath path):返回项目的path路径下的IPackageFragmentRoot。
findType:根据一个全名取得此元素的类型,此类有数个重载方法,返回值类型为IType。
getAllPackageFragmentRoots:返回所有的IPackageFragmentRoot,返回值类型是IPackageFragmentRoot[]。
getOutputLocation:返回输出路径,返回值类型是IPath。
getRequiredProjectNames:返回依赖项目,返回值类型是字符串数组。
setOutputLocation:设定输出路径。
(6) IPackageFragment
此接口表示整个包或者包的一部分。
createCompilationUnit:创建一个ICompilationUnit,返回值类型是ICompilationUnit。
getClassFile:返回指定名称对应的IClassFile,返回值类型是IClassFile。
getClassFiles:返回所有的IClassFile,返回值类型是IClassFile[]。
getCompilationUnit:返回指定名称对应的ICompilationUnit,返回值类型是ICompilationUnit。
getCompilationUnits:返回所有ICompilationUnit,返回值类型是ICompilationUnit[]。
getKind:判断此包是源码包还是普通包,返回值是int型,如等于IPackage- FragmentRoot.K_SOURCE则是源文件包,如等于IPackageFragmentRoot.K_BINARY则为普通包。
hasSubpackages:是否有子包。
(7) IPackageFragmentRoot
此接口表示一组包段,并将各段映射至底层资源,它可以是文件夹、JAR或ZIP文件。
createPackageFragment:创建一个IPackageFragment,返回值类型是IPackage- Fragment。
getKind:此包段是源码包段还是二进制包段,返回值类型是int,如果等于IPackageFragmentRoot.K_SOURCE则是源文件包段,如果等于IPackageFragment- Root.K_BINARY则为二进制包段。
getPackageFragment:根据包名返回对应的IPackageFragment。
常用工具类
(1) JavaCore(定义在org.eclipse.jdt.core包下)
JavaCore从Plugin继承,它是JDT插件的生命周期管理器。不过对于第三方插件开发人员来说,它的重要性更多地体现在它提供的一些工具类方法中。
IJavaElement create(IFile file):从文件创建对应的Java元素。
IJavaElement create(IFolder folder):从文件夹创建对应的Java元素。
IJavaProject create(IProject project):得到IProject对应的IJavaProject。
IJavaElement create(IResource resource):从资源创建对应的Java元素。
IJavaModel create(IWorkspaceRoot root):从工作空间根目录得到对应的IJavaModel。
IClassFile createClassFileFrom(IFile file):从文件创建对应的IClassFile。
ICompilationUnit createCompilationUnitFrom(IFile file):从文件创建对应的ICompilationUnit。
style="LINE-HEIGHT: 17.5pt; TEXT-INDENT: 21pt"(2) JavaUI(定义在org.eclipse.jdt.ui包下)
JavaUI中定义了常用的Java插件界面相关的方法。
createPackageDialog:创建一个包选择对话框,返回值是SelectionDialog。
createTypeDialog:创建一个类型选择对话框,返回值是SelectionDialog。
IEditorPart openInEditor(IJavaElement element):用编辑器打开指定的Java元素并返回编辑器实例。
revealInEditor(IEditorPart part, IJavaElement element):在编辑器中定位元素element。
插件开发中经常会碰到一些常用的技巧,掌握这些技巧可以极大地提高插件的开发效率,并且可以减小插件的体积。下面列出一些常见的技巧。
(1) 由一个普通项目得到Java项目
Java项目是一种特殊的项目,需要注意的是IJavaProject并不是从IProject继承的。不能将一个IProject对象强制转换成一个IJavaProject对象,也不能把一个IJavaProject实例赋值给IProject变量。
由IProject项目得到Java项目的方式:
IJavaProject javaPoject = JavaCore.create(IProject);
由IJavaProject得到IProject的方式:
调用IJavaProject的IProject getProject();
(2)得到工作空间中的所有Java项目
我们可以首先得到工作空间中的所有项目,然后逐个进行转换。不过这不免麻烦了一些,下面介绍更好的方式。IJavaModel是所有Java项目的根,通过它就可以得到所有的Java项目:
IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot(); IJavaModel jModel = JavaCore.create(root); IJavaProject jProject[] = jModel.getJavaProjects();
(3) 打开Java编辑器并显示Java编译单元的特定成员
代码如下:
void showMethod(IMember member) { ICompilationUnit cu = member.getCompilationUnit(); IEditorPart javaEditor = JavaUI.openInEditor(cu); JavaUI.revealInEditor(javaEditor, member); }
(4) 在工程下创建一个com.cownew包,并创建一个Hello.java文件
(5) 打开【打开类型】对话框
以下代码段使用 JavaUI 类来打开【打开类型】对话框:
new ProgressMonitorDialog(parent), SearchEngine.createWorkspaceScope(),
用类似方法还可以创建【打开包】和【打开主要类型】对话框。
(6) 打包指定的文件
我们写一些工具的时候也许需要把文件打成jar包,然后进行发布到应用等操作,调用JDT提供的类可简化这个操作(用到的打Jar包的类都在org.eclipse.ui.jarpackager下):
JarPackageData description= new JarPackageData(); IPath location= new Path("C:/cownew.jar"); description.setJarLocation(location); description.setSaveManifest(true); description.setManifestMainClass(mainType); description.setElements(filestoExport); IJarExportRunnable runnable= description.createJarExportRunnable(parentShell); new ProgressMonitorDialog(parentShell).run(true,true, runnable);
参数mainType表示Jar包的main类,filestoExport为要打包的文件。
(7) 自动设置Java项目的构建路径
有一些插件会将需要的jar包自动设置到构建路径上,比如使用WTP的新建向导新建web项目的时候就会把web开发需要的jar包自动放入项目的构建路径,使用PDE的“将项目转换为插件项目”功能后项目的构建路径中就增加了插件依赖项的库。那么它们是怎么实现的呢?
Java项目的构建路径有如下几种:源文件夹、二进制库、依赖项目、类路径变量和类路径容器。
- contains:判断是否存在指定的资源。
- 如何判断指定的文件是否存在
- 判断指定文件夹是否存在
- 判断一个指定的Service是否存在的方法
- 判断指定进程号的进程是否存在
- 用VBA判断指定的文件夹或文件是否存在
- 判断指定的进程或程序是否存在方法
- 判断指定的进程或程序是否存在方法
- js判断指定的页面是否有效存在
- php判断指定的数据库是否 存在
- 判断指定的进程或程序是否存在方法
- 【PB】如何判断PBL中是否存在指定的对象
- VBA判断指定的文件夹或文件是否存在
- Visual Basic 中判断指定名称的进程是否存在
- js判断指定函数、变量是否存在的方法
- C++判断指定目录是否存在
- java判断指定路径文件是否存在
- 根据地址判断指定文件是否存在
- HDU 3564 线段树+LIS
- 判断一个数 是否是回文数 C语言代码!
- HDU4907-Task schedule
- poj50题留念~积少成多,无欲则刚
- qt tslib 生成Makefile时出错"make: *** No targets specified and no makefile found. Stop”
- contains:判断是否存在指定的资源。
- 分析thinkphp自带的分页函数
- cocos2dx ipad 五指缩小再放大后,应用无响应
- 程序员常用的一些工具
- poj-2115-C Looooops-扩展欧几里德
- JDT为这些不同的构建路径提供
- vmware虚拟机上网问题
- Oracle简单查询语句
- 常见的HTTP返回码