gpt4 book ai didi

java - "Export to JAR in Eclipse"能像 javac 一样智能吗?

转载 作者:行者123 更新时间:2023-12-02 08:14:54 25 4
gpt4 key购买 nike

我想将 Java 项目的一部分导出到 jar 文件中,同时仅包含运行主类所需的类文件。该项目包含具有类似但不相同的依赖关系的其他主要类。我可以运行自定义脚本来实现它,如下所示:

mkdir temp
cd temp
javac -sourcepath "../" -d . ../MAINCLASS_A.java
jar cmf MAINCLASS_A.manifest ../MAINCLASS_A.jar *

为了优雅并更轻松地与其他人共享,我想直接从 Eclipse 运行它而不是这个自定义脚本。但是,当我导出到 JAR 文件或可运行 JAR 文件时,项目中的每个类文件都会包含在内。我知道我可以设置手动过滤器来排除某些文件,但似乎应该有一个更智能的选项。如何配置 Eclipse 只包含主类实际依赖的类文件?

最佳答案

我认为你想做的事情在一般情况下是不可能的。是的,理论上 javac 可以找到(并且找到)类之间的所有依赖关系。但只有当这些依赖项在您的项目中进行硬编码时,即您不直接或间接使用任何动态类加载和反射时,它才是正确的。

真实的应用程序通常使用各种第三方库、框架等。因此,即使您从未在自己的代码中说过Class.forName(),有时也会使用动态类加载。我认为如果您需要这种优化,您必须编写构建自定义 jar 的自定义脚本。顺便说一句,您需要它的事实可能会提示您您的项目组织不正确。您可能应该将您的项目分成 2 个或更多。每一个都应该只包含它的依赖项。在这种情况下,您可以使用内置的 Eclipse 功能来打包 jar 文件。

关于java - "Export to JAR in Eclipse"能像 javac 一样智能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6622753/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com