如何仅使用给定类所需的类文件创建JAR

时间:2012-06-01 20:34:17

标签: java jar

我有一个目录,里面有数百个类文件,这些文件是由以前的编译构建的。假设我有一个类,它只依赖于那些生成的类文件的一小部分。是否可以创建仅具有给定类的依赖项的JAR?

编辑:请注意,我不是在谈论库级依赖项(即JAR)。当我引用上面的依赖项时,我指的是由类A调用类B产生的依赖类型。也许一个例子会很好。想象一下,我的项目中有以下课程。

public class A {
    B bField;
}

public class B {
    C cField;
}

public class C {
    B bField;
}

现在假设我想用类B构建一个JAR,那么JAR也需要包含C的类文件,因为它依赖于另一个。如果我想从A类构建一个JAR,那么将包括所有三个类。有没有办法检查这个依赖关系链并用结果构建一个JAR?

2 个答案:

答案 0 :(得分:3)

有几种产品可以做到这一点,包括ProGuard

危险在于,如果没有详尽的运行时分析,或者对您的代码及其使用的任何框架有一个很好的理解,如果通过反射实例化某些类可能会错过。插件系统,依赖注入,脚本等都会干扰静态分析的准确性。

答案 1 :(得分:0)

是的,这是可能的。您可以使用要包含的类列表创建一个文件,并将该文件传递给jar命令。详细信息记录在案here