如何识别程序中正在使用的软件包类?

时间:2014-12-02 19:08:02

标签: java class

我使用*导入了包。

示例:

import java.awt.*;

有没有办法找出我在程序中实际使用的这个包的哪些类?我只需要导入我实际用于Java项目的类。

谢谢

4 个答案:

答案 0 :(得分:4)

使用像Eclipse这样的IDE来组织导入,这只会为代码中使用的类添加导入。

Eclipse的快捷方式是 Ctrl + Shift + O (您甚至可以配置为在保存对文件的更改时自动运行操作)。

对于IntelliJ, Ctrl + Alt + O

答案 1 :(得分:3)

如果您只想清理*导入,其他答案中的键盘快捷键将会执行此操作,但如果您希望能够自动找出某些代码使用的依赖项,Oracle已经创建了一个名为jdeps的工具,它随JDK一起提供。它被描述为:

  

jdeps命令显示Java类文件的包级别或类级别依赖关系。输入类可以是.class文件的路径名,目录,JAR文件,也可以是完全限定的类名...

例如,如果您的类构建到classes目录,则以下命令将显示类com.example.Foo使用的类:

jdeps -verbose:class -cp classes com.example.Foo

有关使用的详细信息,请参阅jdeps documentation

答案 2 :(得分:0)

您可以使用反射(getPackage()或getClassName())来获取包详细信息。

尝试{

    System.out.println(Class.class.forName("java.lang.Integer").getPackage());
 }
 catch(ClassNotFoundException ex) {
    System.out.println(ex.toString());
 }

答案 3 :(得分:-2)

除非您将使用每一个,否则最好不要使用*进口。这将使可执行文件不必要地变大。

就像@Bill一样,Lizard说,编译器会告诉你忘记添加哪些导入。