首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何以完整的类名从eclipse中以编程方式查找java文件?

以完整的类名从Eclipse中以编程方式查找Java文件,可以使用Java Search API。以下是一个示例代码:

代码语言:java
复制
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.OperationCanceledException;
import org.eclipse.jdt.core.IJavaElement;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.IType;
import org.eclipse.jdt.core.JavaCore;
import org.eclipse.jdt.core.JavaModelException;
import org.eclipse.jdt.core.search.IJavaSearchConstants;
import org.eclipse.jdt.core.search.IJavaSearchScope;
import org.eclipse.jdt.core.search.SearchEngine;
import org.eclipse.jdt.core.search.SearchParticipant;
import org.eclipse.jdt.core.search.SearchPattern;
import org.eclipse.jdt.core.search.TypeNameMatch;
import org.eclipse.jdt.core.search.TypeNameMatchRequestor;

public class JavaFileFinder {

    public static void main(String[] args) {
        String className = "com.example.MyClass";
        IType type = findJavaFile(className);
        if (type != null) {
            IFile file = (IFile) type.getResource();
            System.out.println("Java文件路径:" + file.getFullPath());
        } else {
            System.out.println("未找到Java文件");
        }
    }

    public static IType findJavaFile(String className) {
        IJavaProject[] projects = JavaCore.create(ResourcesPlugin.getWorkspace().getRoot())
                .getJavaProjects();
        for (IJavaProject project : projects) {
            try {
                IType type = findJavaFileInProject(project, className);
                if (type != null) {
                    return type;
                }
            } catch (JavaModelException e) {
                e.printStackTrace();
            }
        }
        return null;
    }

    public static IType findJavaFileInProject(IJavaProject project, String className)
            throws JavaModelException {
        IJavaSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaElement[] { project });
        SearchPattern pattern = SearchPattern.createPattern(className,
                IJavaSearchConstants.TYPE, IJavaSearchConstants.DECLARATIONS, SearchPattern.R_EXACT_MATCH);
        TypeNameMatchRequestor requestor = new TypeNameMatchRequestor() {
            private IType type;

            @Override
            public void acceptTypeNameMatch(TypeNameMatch match) {
                if (type == null) {
                    type = match.getType();
                }
            }

            public IType getType() {
                return type;
            }
        };
        new SearchEngine().search(pattern, new SearchParticipant[] { SearchEngine.getDefaultSearchParticipant() },
                scope, requestor, new NullProgressMonitor());
        return requestor.getType();
    }
}

这个代码示例将遍历Eclipse工作空间中的所有Java项目,并在每个项目中查找指定的类名。如果找到了匹配的类,它将返回该类的IType对象,您可以从该对象中获取IFile对象,以获取Java文件的路径。

请注意,这个代码示例仅适用于Eclipse插件开发环境,因为它使用了Eclipse平台的API。如果您需要在其他环境中执行类似的操作,可能需要使用不同的API。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

eclipse使用和快捷键

一、快捷键 - ctrl + shift + o 导包- ctrl + shift + t 快速查找某个- 先按ctrl + 2 ,再点L, 创建变量并命名- ctrl + o , 在当前,快速查找某个方法...这组快捷键可以让你打开你工作区任何一个文件,而你只需要按下文件或mask前几个字母,比如applic*.xml。美中不足是这组快捷键并非在所有视图下都能用。...这样我节省了输入,变量以及导入声明时间。Ctrl F效果类似,不过效果是把方法计算结果赋值于域。...新版Eclipse修改建 议做很不错,可以帮你解决很多问题,方法缺失参数,throw/catch exception,未执行方法等等。...如果SVN端创建文件与项目名称不符,则在该步骤选择“使用指定模块确保SVN服务器端与项目名称一致。

1.3K90

eclipse使用和快捷键

这组快捷键可以让你打开你工作区任何一个文件,而你只需要按下文件或mask前几个字母,比如applic*.xml。美中不足是这组快捷键并非在所有视图下都能用。...这样我节省了输入,变量以及导入声明时间。Ctrl F效果类似,不过效果是把方法计算结果赋值于域。...新版Eclipse修改建 议做很不错,可以帮你解决很多问题,方法缺失参数,throw/catch exception,未执行方法等等。...选项右侧Text file encoding下选择你需要编码格式 ● 相同名称(包括、方法名、变量等等)不同背景色标识出来 见下图: 或者按快捷键:...如果SVN端创建文件与项目名称不符,则在该步骤选择“使用指定模块确保SVN服务器端与项目名称一致。

51310
  • Java入门到失业》第四章:和对象(4.5):包

    不过这一点也有办法控制,后面我们有机会可以讨论包密封机制来解决这个问题(Java虚拟机加载上禁止加载用户自定义java.开头来解决这个问题)。       ...4.5.4.1直接写完整        第一种方式,是直接写完整。...算你厉害,这里就牵涉到编译器在编译时候,是如何定位: 如果是完整,则直接定位到该类 如果是简单,则按下面顺序: 当前包下查找是否存在该类 import语句中查找是否存在该类 java.lang...如果同时需要使用时候,只能用完整方式了。 4.5.4.3静态导入        Java5.0开始,增加一种新导入方式,可以导入静态方法和静态属性。...4.5.5小结        通过本小结讨论,我们知道: 包可以解决冲突,一个完整是包. 在一个访问其他,可以写完整,也可以用import语句导入;Java5.0开始还可以导入静态方法和静态属性

    51230

    Java零基础入门篇】第 ① 期 - Java概述

    如果编程语言角度而言,分为两种类型编程语言:编译型、解释型; 编译型源程序(C程序)——>编译链接——>可执行程序EXE——>运行——>操作系统 Java属于两种类型合集: 源文件——>编译...源文件基本组成部分是(class),本例HelloWorld。 2.Java应用程序执行入口是main()方法***。...4.Java方法由一条条语句构成,每个语句“;”结束。 5.大括号都是成对出现,缺一不可。 6.一个源文件中最多只能有一个public。...其它个数不限,如果源文件包含一个public,则文件必须按该类命名。...Eclipse窗口介绍 1.4常见错误总结 错误原因: 源文件不存在或者写错; 当前路径错误; 后缀隐藏问题; 错误原因: 文件写错; 文件不在当前路径下(如上不在D盘根目录

    8810

    Sublime Text 3配置 Java 开发环境

    JDK1.8 开始,可以直接使用 java.java 运行 Java 文件【其中包含了编译源代码、执行字节码等步骤】。...:新增 JAVA_HOME 环境变量【如果要更换当前 JDK 版本,修改这里即可】:新增 CLASSPATH 环境变量【用于告诉 JVM 在哪些目录下查找文件】:当前目录(.)...:表示在当前目录下查找文件Java库路径:包括Java运行环境提供库(rt.jar、tools.jar等)和第三方库。...自定义文件路径:如果开发者编写了自己 Java 文件,也可以将这些文件所在目录路径也加入到 CLASSPATH 。...注意: java 源码文件后缀为 java,且文件必须和保持一致。

    12221

    Scala安装,入门,学习,基础

    是一种多范式编程语言,其设计初衷是要集成面向对象编程和函数式编程各种特性。...设置 Classpath 变量:找到找到系统变量下"Classpath"如图,单击编辑,没有,则单击"新建": "变量":CLASSPATH "变量值":....单击 【开始】,在输入框输入cmd,然后"回车",输入 scala,然后回车,环境变量设置ok,你应该能看到这些信息。...7 Ctrl+Shift+N 查找文件 8 Ctrl+Alt+L 格式化代码 9 Ctrl+Alt+O 优化导入和包 10 Alt+Insert 生成代码(get,set方法,构造函数等...15 Ctrl+空格 代码提示 16 Ctrl+Alt+Space 或接口提示 17 Ctrl+P 方法参数提示 18 Ctrl+Shift+Alt+N 查找方法或变量 19 Alt+Shift

    1.1K90

    Eclipse使用新手教程

    说起javaIDE,朗朗上口无非是Eclipse了,假若能熟练Eclipse,对于我们编写java程序会起到事半功倍效果,大大提高我们工作效率。...、、方法名、变量等等,很好用) Alt + Shift + J:生成或方法凝视 Alt + Shift + S:打开Source窗体(生成get、set方法,实现、覆盖接口或方法,非经常常使用...它检查或者 JAR 文件,将字节码与一组缺陷模式进行对照发现可能问题。利用这个工具,就能够在不实际执行程序情况对软件进行分析。它能够帮助改进代码质量。...encoding下选择你须要编码格式 ● 同样名称(包含、方法名、变量等等)不同背景色标识出来 见下图: 或者按快捷键:Alt + Shift + O 在Window→Preferences...假设SVN端创建目录与项目名称不符,则在该步骤选择“使用指定模块确保SVNserver端与项目名称一致。

    1.4K10

    【Android应用开发】Android Studio 简介 (Android Studio Overview)

    Root) : 应用中所用到资源文件; -- 纯目录 (Exclude Roots) : 该目录不重要, 被部分忽略, 只是单纯地目录, 该目录下地文件不会进行编译, 查找替换时不会查找该目录下地内容...-- 使用方式 : 该编译系统 既可以 Android Studio 菜单运行工具,  也可以是从命令行运行独立工具; 编译系统功能 : 灵活 Android 编译系统使你能够达到以下列出功能不用修改工程核心文件...manifest.xml 配置文件, 针对某种类型 manifest.xml 配置文件, 包在这些配置文件是可选; 四....Lint 编译检查 (1) 检查内容 Lint 检查条目 :  -- Cipher.getInstance() 使用安全值; -- 使用传统视图组件 View, 仍然使用之前;  -- Fragment...上获取 Android 示例源码; -- 导入方式 : 文件菜单选择 File -> Import Samples, 或者欢迎界面中提供导入按钮导入, 会导入 GitHub 上得示例源码; 参考文档

    2.3K41

    Spring知识整合 —— Spring概述篇

    Spring 框架目标是简化Java企业级应用开发,并通过POJO为基础编程模型促进良好编程习惯。 2. 使用Spring框架好处是什么?...面向切面的编程(AOP):Spring支持面向切面的编程,并且把应用业务逻辑和系统服务分开。 容器:Spring 包含并管理应用对象生命周期和配置。...Bean 工厂是工厂模式一个实现,提供了控制反转功能,用来把应用配置和依赖正真的应用代码中分离。 最常用BeanFactory 实现是XmlBeanFactory 。 6....该容器XML 文件读取配置元数据并用它去创建一个完全配置系统或应用。 7....另外,在容器或容器内对象上执行那些不得不由bean工厂程序化方式处理操作,可以在Application contexts声明方式处理。

    79600

    Java JDK 环境搭建

    jdk/bin 目录里了,这样文件组织方式显然是不好。...二、环境变量全局识别的原理 当在命令行执行程序不存在时,Windows 系统会在本地已有的一个名为 path 环境变量查找路径列表是否存在目标程序。...同时有些 Java 开发工具,Eclipse、IDEA、Tomcat)都会去扫描 JAVA_HOME 变量,看看电脑装了几个版本 jdk,确定使用哪一个。...关于 CLASSPATH 变量 path 作用:path 是系统用来指定可执行文件完整路径,即使不在 path 设置 JDK 路径也可执行 Java 文件,但必须把完整路径写出来, C:\Program...设置了 JDK 安装目录后就不用再把 java 文件完整路径写出来了,它会自动去 path 设置路径中去找; CLASSPATH 作用:classpath 是指定你在程序中所使用(.class

    46920

    java环境变量及Eclipse自动编译问题

    例如Windows和DOS操作系统path环境变量,当要求系统运行一个程序而没有告诉它程序所在完整路径时,系统除了在当前目录下面寻找此程序外,还应到path中指定路径去找。...作用是指定命令搜索路径,在命令行下面执行命令javac编译java程序时,它会到PATH变量所指定路径查找看是否能找到相应命令程序。...我们需要把jdk安装目录下bin目录增加到现有的PATH变量,bin目录包含经常要用到可执行文件javac/java/javadoc等待,设置好PATH变量后,就可以在任何目录下执行javac...变量:Path 变量值:%JAVA_HOME%\bin 我们手动编写一个HelloWorld.java,然后用javac进行编译得到HelloWorld.class 我们在Eclipse中新建一个同样然后保存...保存之后我们到工作目录下查找会看到对应bin目录下已经生成了对应class文件 为什么会在bin目录下生成class文件呢?

    61210

    提高开发效率Eclipse实用操作

    对于程序员来说,Eclipse便是其中一个“器”。本文会Eclipse快捷键和实用技巧这两个篇章展开介绍。Eclipse快捷键用熟后,不用鼠标,便可进行编程开发,避免鼠标分了你神。...而掌握了Eclipse一些实用技巧,则可以大大提高开发效率。 ---- 丢掉鼠标吧之Eclipse快捷键篇 ---- 文件切换三种方式 Ctrl + E 显示出当前窗口打开所有文件 ?...Ctrl + T选择java文件,Ctrl + R选择资源文件 Ctrl + T Ctrl + R 如果你只是想找java,那么直接使用Ctrl + T效率比较高。...1、 在当面文件,使用Alt+ Shift + B调出Eclipse面包屑 2、 然后点击回车,Eclipse会自动选中名字 有部分朋友不喜欢这个功能,那你可以通过点击Eclipse工具栏...Search视图上会列出调用getAdOrderById方法所有 Ctrl + K 和Ctrl + Shfit + K,查找文本 当你选中某个文件某些字符串时,你可以使用Ctrl + K向下寻找相同字符串

    86940

    程序员31大Maven面试问题及答案

    只打包不测试 24.编译测试内容 25.只打 jar 包 26.只测试而不编译,也不测试编译 27.清除 eclipse 一些系统设置 28.查找当前项目已被解析依赖 29.上传到私服 30....pom.xml :配置文件 Maven 要负责项目的自动化构建,编译为例,Maven 要想自动进行编译,那么它必须知道 Java 文件保存在哪里,这样约定之后,不用我们手动指定位置,Maven 能知道位置...它只在编译和测试路径上可用,不可传递。 runtime:此范围表示编译不需要依赖项,但需要执行依赖项。它在运行时和测试路径,但不在编译路径。...=true:清除以前包后重新打包,跳过测试 11.依赖解析机制 当依赖范围是 system 时候,Maven 直接本地文件系统解析构件。...如果最后解析得到构件版本包含有时间戳,先将该文件下载下来,再将文件时间戳信息删除,剩下 SNAPSHOT 并使用(非时间戳形式使用)。

    22420

    14款Java开发工具【面试+工作】

    ,提供了业界第一个完整、集成了J2EE和XML开发环境,允许开发者快速开发可以通过Web、无线设备及语音界面访问Web服务和交易应用,以往只能通过将传统Java编程技巧与最新模块化方式结合到一个单一集成开发环境之后才能完成...除了明显速度提高之外,Symantec使二进制方式比正常JDK小Visual Cafe为所指定关系自动生成或更新必要Java代码。...Eclipse框架这种灵活性来源于其扩展点。它们是在XML定义已知接口,并充当插件耦合点。扩展点范围包括用在常规表述过滤器简单字符串,到一个Java描述。...● 丰富导航模式 IDEA提供了丰富导航查看模式,例如Ctrl+E显示最近打开过文件,Ctrl+N显示你希望显示查找框(该框同样有智能补充功能,当你输入字母后IDEA将显示所有候选)。...显示出来下拉列表里选择。同样方法你可以通过使用Ctrl-Shift-N打开工程Java文件。 3.Ctrl-D复制当前行,Ctrl-Y删除当前行。

    2.4K50

    Java基础笔记11

    工作空间 其实就是我们写源代码所在目录 B:用Eclipse来完成一个HelloWorld案例 代码项目为基本单位 创建项目 创建包 创建 编写代码 C:编译和运行 D:Eclipse汉化...同理,这种方式卸载插件也是特别的方便,推荐这种方式 E:语法检查提示 红色波浪线 黄色波浪线 11.04_Java开发工具(Eclipse视窗和视图概述) A:视窗 每一个基本窗体被称为视窗...+shift+\ D:代码上下移动 选中代码alt+上/下箭头 E:查看源码 选中(F3或者Ctrl+鼠标点击) F:给建议 ctrl+1 G:查找具体 ctrl + shift + t H:...--Export--Java--Javadoc—Finish C:使用jar包 11.13_Java开发工具(Eclipse如何删除项目和导入项目) A:删除项目 选中项目 – 右键 – 删除 项目区域中删除...常见对象(API概述) A:API(Application Programming Interface) 应用程序编程接口 B:Java API 就是Java提供给我们使用,这些将底层实现封装了起来

    82340

    谁再把IDEAProject比作EclipseWorkspace,我就跟谁急

    正是由于有这样历史进程,有大批“老”程序员是Eclipse过度到IDEA来,因此就有了一个颇具代表性概念对比表格,方便“迁移”: 诚然,IntelliJ IDEA使用成本比eclipse略高...一般来说一个Project代表一个完整解决方案,它可包含多个部分,: 源代码 构建脚本 配置文件 文档 SDK 依赖库 … 也就是说Project是个完整体,是个资源集合,扔到任何地方都是可以被解释...比如他们三都有叫ProcessService,那么在你查找时候永远无法“精确定位” 4. 额外性能开销。比如你只想开发user,但还得把其它加载进来,完全没有必要嘛。 1....下面我们按步骤走一篇创建流程: 第一步:选择创建项目的方式,本文选择创建创建Java项目 第二步:选择根据模版创建项目。...在默认情况下,一个Project对应一个Module,它俩“合二为一”,对于中大型项目来说,一般都会使用多模块编程 下篇预告:在IDEA,对项目结构Project Structure设置尤为重要,下篇就为你剖析该页面每个

    91720
    领券