我有一个包 x,其中包含大约 30 个类。我正在编译的程序使用包 x 中的 5 个类。如何一目了然地找到我当前编译过程中使用的 5 个类?
我目前的方法是检查代码并查看使用/实例化了哪些类,这既乏味又缓慢,因为我必须手动浏览代码。有没有更好的方法来查找我当前编译期间使用的所有类?
我想按下一个按钮并查看编译我的程序所需的所有类。
我有一个包 x,其中包含大约 30 个类。我正在编译的程序使用包 x 中的 5 个类。如何一目了然地找到我当前编译过程中使用的 5 个类?
我目前的方法是检查代码并查看使用/实例化了哪些类,这既乏味又缓慢,因为我必须手动浏览代码。有没有更好的方法来查找我当前编译期间使用的所有类?
我想按下一个按钮并查看编译我的程序所需的所有类。
这个命令怎么样:
# 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)