将可运行Java类导出到.jar文件,仅包括所需的依赖项

将可运行Java类导出到.jar文件,仅包括所需的依赖项,java,eclipse,jar,dependencies,export,Java,Eclipse,Jar,Dependencies,Export,可能重复: 我在Eclipse上有一个Java项目,其中包含很多Java类。我想将其中一个导出到.jar文件,但遇到了一些问题 我已经阅读了一些现有的线程,但我没有得到我的需求的正确答案,因为: 如果选择“导出到JAR文件”,则会导出正确的类,但.JAR文件不包含运行JAR文件所需的依赖项 如果选择“Export to runnable JAR file”,则生成的JAR文件包含所有依赖项,但也包含整个项目中的所有其他类(也包括我不需要的类) 如何将单个Java类导出到包含运行jar文件所需库

可能重复:

我在Eclipse上有一个Java项目,其中包含很多Java类。我想将其中一个导出到.jar文件,但遇到了一些问题

我已经阅读了一些现有的线程,但我没有得到我的需求的正确答案,因为:

如果选择“导出到JAR文件”,则会导出正确的类,但.JAR文件不包含运行JAR文件所需的依赖项

如果选择“Export to runnable JAR file”,则生成的JAR文件包含所有依赖项,但也包含整个项目中的所有其他类(也包括我不需要的类)

如何将单个Java类导出到包含运行jar文件所需库的.jar文件中?生成的jar文件必须尽可能小


非常感谢。

您可以创建一个只包含所需类的新项目,并将该项目导出为可运行的jar。

可能会有一个解决方法,具体取决于您需要它的用例。通常,完全依赖性分析是不可能的,因为您的代码可能会在运行时加载类等。 如果您需要.jar尽可能小(例如,如果您希望能够“klickstart”应用程序的一部分,而不是冗余地浪费存储),您可以使用

Export... -> Runnable JAR File -> Copy required libraries into a sub-folder...
然后,ant只为所有JAR保留外部库的一个副本。
请提供关于您的用例的更多信息,以便我们可以发布更具体的答案:)

试试这个,这是在eclipse中创建jar或可运行jar的方法

File -> Export-> Java ->Runnbale JAR file

Launch configuration : your Class containing the public static void main(String[] args)

Export destination : Target place

Library Handling:

Package required libraries into generated JAR

FINISH

这是一个文件的解决方案,但是每次我必须导出一个类时,我必须创建一个新项目。在一个大项目中,这可能意味着很多工作。或者,即使我只需要一个类,但该类需要项目之外的其他类,我也必须查找所需的每个类并将其移动到新项目中。为什么不可能自动保持导出的应用程序较小?您使用的是maven吗?我有同样的问题-我已经写了一个简单的程序和所有的公共物品,它的重量超过3毫克!我确信,如果我能用它真正需要的类来构建jar,它将是非常小的。我有一个项目,它由许多框架(外部库、源文件等)和许多类文件(其中一些带有main方法)组成。现在,我想在一个可运行的jar文件中用一个main方法导出每个类。然后,我想量化不同罐子的大小。如果我使用Export作为可运行的Jar文件,Eclipse会将整个项目的所有类放入该Jar文件中。如果我只使用导出Jar,导出的Jar将不包括所需的库等。我知道这个项目有点混乱,但我还没有实现它,我只是想分析一下。我已经这样做了。不幸的是,这并不能解决我的问题,因为runnable jar包含整个Eclipse项目的所有文件。@fachexot这里也有同样的问题。。。还是没有解决办法?