java 查找eclipse中编译期间使用的类

mgdq6dx1  于 2023-05-27  发布在  Java
关注(0)|答案(1)|浏览(143)

我有一个包含大约30个类的包x。我正在编译的程序使用了包x中的5个类。如何找到在我当前编译过程中使用的5个类?
我目前的方法是检查代码,看看哪些类被使用/示例化,这是繁琐和缓慢的,因为我必须手动通过代码。有没有更好的方法来查找当前编译过程中使用的所有类?
我想按下一个按钮,查看编译我的程序所需的所有类。

5hcedyr0

5hcedyr01#

这个命令怎么样:

# which jar file you need analyzing
export JAR_FILE="...";
# export CLASSPATH environment for compiling purpose
export CLASSPATH="...";

javac -verbose *.java 2>&1 \
     | grep -E "^\[loading" \
     | grep $JAR_FILE \
     | grep -Eo "\((.*?)\)";

示例

编译Main.java

public class Main {
   public static void main(String[] args) {
      org.joda.time.DateTime dateTime = new org.joda.time.DateTime();
   }
}

命令如下:

export JAR_FILE="joda-time-2.9.9.jar";
export CLASSPATH="joda-time-2.9.9.jar";
javac -verbose *.java 2>&1 \
     | grep -E "^\[loading" \
     | grep $JAR_FILE \
     | grep -Eo "\((.*?)\)";

将只输出在joda.jar中使用的类:
(org/joda/time/DateTime.class)

相关问题