gpt4 book ai didi

java - 在分块然后合并 jar 文件时遇到问题

转载 作者:行者123 更新时间:2023-12-01 16:43:42 25 4
gpt4 key购买 nike

我有一个 jar 文件,例如 apache-cassandra-3.11.6.jar。首先,我将其分成多个 jar ,如下所示:

apache-cassandra1.jarapache-cassandra2.jarapache-cassandra3.jarapache-cassandra4.jarapache-cassandra5.jarapache-cassandra6.jar

然后我将它们再次重新组装到新的 Jar 文件中,即 apache-cassandra_Merged.jar。现在问题来了。

当我将原始 jar 文件(即 apache-cassandra-3.11.6.jar)与新 Jar 文件(即 apache-cassandra_Merged.jar)进行比较时。那么它不匹配。

新创建的jar文件是apache-cassandra_Merged.jar,它的大小也减小了。

请在下面找到我的代码供您引用:

/// Chunking/spliting into mutiple jars
Path path = Paths.get("/Original_Jar/apache-cassandra-3.11.6.jar");
byte [] data = Files.readAllBytes(path); // Will read all bytes at once

现在将总字节分成相等的部分,然后一个一个地写入每个小 jar 中。

int count = 0;
for(byte[] rangeData : Arrays.copyOfRange(data, rangeSTART, rangeEND)){
FileOutputStream fileOutputStream1 = new FileOutputStream("/Cassandra_Image/Chunked_Jar/apache-cassandra"+count+".jar");
fileOutputStream1.write(rangeData);
}

//合并回一个jar对于合并我使用了相同的方式。为每个小/分块的 jar 创建字节数组,并将其一一写入 FileOutputStream("/Merged_Jar/apache-cassandra_Merged.jar") 中。

请告诉我是否应该使用其他方法/算法来拆分 jar 并再次重新组装它,这将确保分块和合并后数据的原创性。

注意:实际上我想将 jar 传输到任何服务器/目录,我应该在其中传输尺寸有限的 jar ,因此对于大尺寸的 jar ,我需要分成小 jar 并将它们一个一个地发送,然后再次将它们重新组装目标目录/位置,它应该与原始 jar 相同。

提前致谢。

最佳答案

这可能不是答案,但我提供给您作为信息。 Java 还提供了 pack 格式,您可以在其中压缩 jar 文件,然后可以使用 unpack 解压缩。该工具称为pack200

如何压缩

<java_location>...\jre\lib>pack200 -J-Xmx256m small.jar.gz big.jar

如何解压

<java_location>...\jre\lib>unpack200 small.jar.gz big.jar

您可以引用以下链接。

https://docs.oracle.com/javase/1.5.0/docs/tooldocs/share/pack200.html

https://docs.oracle.com/javase/7/docs/technotes/tools/share/unpack200.html

关于java - 在分块然后合并 jar 文件时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61815164/

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