当前位置: 首页 > 面试题库 >

减少jar文件大小

堵远航
2023-03-14
问题内容

有什么办法可以减少jar文件的大小?

我想要一个减少未使用依赖性的工具。

我使用Maven进行依赖管理。


问题答案:

从Maven的角度来看,JAR文件通常不包含依赖项。因此,您必须在谈论:

  • WAR或EAR或类似文件,
  • 通过合并大量JAR文件而产生的所谓的UberJAR文件;例如使用Maven阴影插件,或
  • 依赖比Maven模块更精细。

在前两种情况下,可以通过在依赖关系规范或war或shade插件构建描述符中排除名义上依赖的JAR来排除它们。IIRC,shade插件还允许您排除特定的程序包和类。

最后一个可能需要单独的工具来对JAR文件进行后处理。摆脱未使用的类是混淆器可以做的事情。但是,您需要注意不要消除反射性使用的类或类名。例如通过DI /
IoC框架或AOP框架。

(通常,这种工具通过分析.class文件外部引用隐含的依赖关系来尝试找出使用了哪些类。DI / IoC /
AOP等引入了.class文件中不明显的其他类型的依赖关系结构体。)



 类似资料:
  • 问题内容: 我已经为Java项目开发了一个模块。该模块取决于外部库()。问题是,该文件比整个项目本身(14 MB)大两倍。我仅使用库中类的一小部分。该模块现已完成,将来没有人会对其进行扩展。有没有一种方法可以将相关类仅提取给某些类,以便其他人不必下载所有这些额外的内容? 问题答案: ProGuard之类的混淆工具通常提供从jar文件中删除未使用的类(甚至字段和方法)的功能。但是,您必须小心确认所有

  • 问题内容: 我用Xcode 6.1和Swift制作了一个非常简单的iPhone应用程序。我对ios开发真的很陌生,遇到了一个134 mb的应用程序!当然这是不可接受的。 我的所有屏幕尺寸的背景图像加起来总计20 mb。就是这样!我将这些图像存储在xcassets中,因为那是我猜的首选方式。 我认为该应用程序不应超过25 mbs。 我发现我的项目中有一些参考文献加倍。我删除了这些,但我的.app文件

  • 如何减小Maven可执行Jar文件大小。目前为255 MB。它不允许在Cloud形成中部署。 我正在通过云形成进行部署- 如果我可以将文件的大小从255 MB减少,那么我的问题就会得到解决。 我从JAR文件中看到,下面2个依赖项占用了195 MB。 我应该怎样减少它? 完整的Pom XML文件包括- Pom。xml- 4.0.0组织。springframework。boot spring boot

  • 问题内容: 让我们比较一下c:Hello_world.c: Hello_world.go: 都编译: 还有,这是什么? 大约1Mb的世界。你在跟我开玩笑吗?我做错了什么? (仅限Hello_go-> 893K) 问题答案: 文件较大是否有问题?我不知道Go,但是我认为它会静态链接某些运行时库,而C程序则不是这种情况。但是,只要程序变大,就不必担心。 如上所述这里,静态链接Go运行时是默认的。该页面

  • 问题内容: 我只有一行用python编写的代码,并带有pyinstaller和option 。exe文件为4577 kB,几乎是5Mb。如何减小其大小或排除某些自动捆绑的图书馆? 问题答案: 您使用pyinstaller创建的.exe文件包括python解释器和脚本中包含的所有模块。也许您正在使用的模块本身都有一个很大的库。但是,您可以尝试使用 py2exe, 但它可能不适用于所有项目。另一种缩小

  • 问题内容: 我正在开发一个 Java Web应用程序 ,其中包括 一个applet 。该小程序依赖于两个jar文件: JFreeChart(用于在客户端绘制图) -1.7 mb(jar文件的大小) MySqlJdbcConnector(用于将在客户端捕获的数据存储到远程数据库)-. 7 mb(JAR文件的大小) 现在,问题是上述两个jar文件的大小。我的小应用程序jar (myApplet.jar