当前位置: 首页 > 知识库问答 >
问题:

使用Bouncy Castle库会导致output.jar文件大小的大量增加

盖高畅
2023-03-14

我只使用了库中的几个实际类,即:

import org.bouncycastle.util.encoders.Hex;
import org.bouncycastle.crypto.Digest;
import org.bouncycastle.crypto.macs.HMac;
import org.bouncycastle.crypto.params.*;
import org.bouncycastle.crypto.digests.SHA256Digest;

提前道谢。

共有1个答案

屈昊天
2023-03-14

现在这是一个非常棘手的问题!

在做其他事情之前,请解压jar文件,看看Proguard是否混淆了BouncyCastle的类文件?由于您已经包含了bouncycastle jar文件作为库,并且其中有类文件,所以我假设Proguard没有混淆这些占用大量空间的类文件。

不管怎样,我刚刚下载了bouncy castle jar文件,可以看到它纯粹是由类文件组成的,所以没有额外的文件我们可以删除和删除以减少生成的jar文件。

>

  • 这很容易,但我不建议这样做,它可能会导致运行时异常或错误:解压缩bouncycastle jar文件。然后导航到目录src\org\bouncycastle,正如您所提到的,您只使用下面这些包org.bouncycastle.util.*org.bouncycastle.crypto.*

    现在,我将假设这两个包中的源代码不依赖于其他包中的源代码/类文件。

    现在删除其他目录,即“ASN1”、“BCPG”。在这个阶段,我不会成为一个屠夫,删除所有的东西,但会通过删除一对夫妇,然后回来,删除其他人,如果它的工作。

    这是正确执行此操作所需的重要步骤,否则jar文件将无法工作。选择根目录中的所有目录,然后右键单击->发送到zip

    创建zip文件后,将其重命名为*.jar而不是*.zip

    1. jar文件的大小将会减小,现在将该jar文件包含在项目中。看看它是否编译并执行。然后检查您的功能是否在运行时正常工作。如果一切顺利,那你就完蛋了。现在,您可以重复上述步骤,删除更多目录以减小jar文件大小。
      null

  •  类似资料:
    • 我希望在复制现有的pdf文件时,文件大小大致相同。我不明白为什么尺寸会增加这么多。 我也试过PdfCopy类。我使用PDFcopy遵循了2种方法: 逐页复制。 对pdfcopy对象调用setMergeFields(),然后调用pdfcopy.AddDocument(reader); 但这两种方法的问题都是,它会从pdf文件中丢弃一些非内容的元数据,因此当Adobe Reader打开新的pdf时会损

    • 问题内容: 在Windows上的Python中,我可以通过创建一个大文件 现在大约是1 GB。但是,在Linux上,这将返回。 有没有办法在Linux上获得与Windows相同的行为?也就是说,能够使用?来增加文件的大小。 问题答案: 至少在POSIX系统上,不能用于增加(或减小)文件的大小。的功能是将文件的一部分映射到内存。合乎逻辑的是,您请求映射的东西应该确实存在!坦白说,我真的很惊讶您实际上

    • 我正在创建一个int数组SecretNumber。当我将数组大小声明为数字时,没有越界异常,但当我用变量(numDigits)声明数组大小时,在索引0处得到行“secretNumber[I]=val”的越界异常。这是类: 这是执行这些方法的主体,我在设置数组之前运行numDigits setter: 如果我设置了NumDigits,为什么索引0会超出界限??

    • 我正在使用Javafx(没有使用FXML),我正在将阶段传递到a控制器中,以便在单击按钮时更改阶段上的场景。场景的变化是正确的,但是舞台和场景的尺寸增加了,它的尺寸增加了大约0.1(宽度),而高度有时也增加了(不是每次都增加)。 下面是正在使用的控制器。

    • 问题内容: 该软件包通过将zip文件视为文件系统,具有处理zip文件的优美方法。这使我们能够像对待普通文件一样对待zip文件内容。因此,仅通过将所有文件复制到zip文件中即可压缩整个文件夹。由于也要复制子文件夹,因此我们需要一个访问者: 这是一个简单的“递归复制目录”访问者。它用于递归复制目录。但是,使用,我们还可以使用它将目录复制到zip文件中,如下所示: 这就是我称为压缩整个文件夹的一种优雅方

    • 问题内容: 我正在使用Grails 1.1 beta2。我需要将大量数据导入Grails应用程序。如果我反复实例化grails域类然后保存它,则性能会降低到无法接受的程度。以从电话簿导入人为例: 事实证明这是缓慢的。Grails邮件列表上的某人建议在事务中分批保存。所以现在我有: 这必须至少在开始时更快。每笔交易会保存500条记录。随着时间的流逝,交易花费的时间越来越长。最初的几笔交易大约需要5秒