Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
找出Java/Eclipse项目中使用特定包的类的位置_Java_Eclipse_Find_Grep_Package - Fatal编程技术网

找出Java/Eclipse项目中使用特定包的类的位置

找出Java/Eclipse项目中使用特定包的类的位置,java,eclipse,find,grep,package,Java,Eclipse,Find,Grep,Package,我有许多Eclipse项目都使用特定包中的类,我们称之为“gr.serafeim”。现在,我想找到我所有源文件中使用gr.serafeim的成员的位置(每个文件的行号)。问题是我通常使用的是导入,而不是类的完全限定名,因此搜索“gr.serafeim”只会返回导入语句:( 我不想要任何东西,只需要一个快速而肮脏的解决方案来找出包含gr.serafeim包(eclipse插件?)类的所有行。作为一个附加值,我不想要这些函数的声明,也不想要这些函数的方法调用 下面是一个我真正想要的例子: // Fi

我有许多Eclipse项目都使用特定包中的类,我们称之为“gr.serafeim”。现在,我想找到我所有源文件中使用gr.serafeim的成员的位置(每个文件的行号)。问题是我通常使用的是导入,而不是类的完全限定名,因此搜索“gr.serafeim”只会返回导入语句:(

我不想要任何东西,只需要一个快速而肮脏的解决方案来找出包含gr.serafeim包(eclipse插件?)类的所有行。作为一个附加值,我不想要这些函数的声明,也不想要这些函数的方法调用

下面是一个我真正想要的例子:

// File main.java   
import gr.serafeim.*;
public static void main(String args[]) {
    // Test is a member of gr.serafeim !
    Test t = new Test(5);
    int i=3;
    t.add(i);
}
我想从上一个文件中得到的回报是这样的

main.java: 5: Test t = new Test(5); 
main.java: 7: t.add(i); 
如果前面的方法不能实现,那么我也可以用一种方法对我所有的类进行大规模的名称限定

Test t = new Test(5);
将成为

gr.serafeim.Test t = new gr.serafeim.Test(5);
然后我只需要grep为gr.serafiem。这当然无助于找到t.add(I)行,但这将是一个很好的第一步,我可以从那里开始自己检查代码


右键单击->引用->(任意选择)。对于工作区引用,按住Shift-Ctrl-G键(默认情况下)

我认为默认的结果列表是一个树,可以更改为列表。但是,我不认为它显示行号,至少在我使用的Eclipse版本中是这样。如果您专门查找行号,我认为默认工具没有包含行号的导出

您可以尝试IntelliJ社区版;它的搜索确实显示行号,并且结果可以导出到文本文件(下面的片段)

这里有一个骇客:

使用package-info.java文件将包标记为已弃用:

@Deprecated
package com.yourcompany.yourpackage;

现在,您应该可以在使用包的任何地方看到编译器警告,您可以选择类、构造函数、方法或字段,然后按“ctrl+alt+h”。这将打开调用层次菜单。

@SeanPatrickFloyd哦,我明白了。在这种情况下,我认为没有从字节码中提取的好选项。这看起来非常好,我实际上不知道package-info.java文件!事实上,我现在知道需要将package-info.java文件放在包的源代码中。我的问题是m是因为我没有我正在使用的库的源!!!那么我现在能做什么?@Serafeim从您的生成路径中删除库。现在编译器错误将显示在您使用库类的任何地方。
@Deprecated
package com.yourcompany.yourpackage;