有没有一种简单的方法来生成一个 JAR 文件,它只包含依赖于某个“主”类的传递的类(当然省略了反射)。我想将我的应用程序的一小部分提供给其他人,但不想导出整个应用程序。
谢谢,M。
可能最简单的方法是使用像 yGuard 这样的工具,它“...通过依赖分析提供精细的代码压缩功能”。这也将解决您给它一个入口点的相同问题,它执行依赖分析以找出可以从 Jar 中排除哪些类。
但是,我自己已经多次解决了这个问题,并想亲自尝试一下以应对挑战。只需解析 Java 源文件的 import 语句并构建类之间如何交互的依赖关系图。应该递归地扫描来自主类的每个引用,直到组装完整的图形。然后,一旦组装了图形,就会以某种打包逻辑可以处理的方式输出它(或者如果你觉得大胆,JDK 有自己的内置 Jar 创建/修改代码来自己做)。当然,这种方法需要编写此自定义实用程序,并且还会遗漏代码中的完全限定类引用。