无法在Java6使用SevenZFile解压7z文件

无法在Java6使用SevenZFile解压7z文件,java,compression,unzip,7zip,Java,Compression,Unzip,7zip,我可以在Java 7和Java 8中使用org.apache.commons.compress.archivers.sevenz.sevenz文件解压7z文件。但是我不能通过使用Java6来做到这一点。你能帮我用Java6解决这个问题吗?Java6找不到SeekableByteChannel:( 您可以在下面找到示例代码: SeekableInMemoryByteChannel inMemoryByteChannel = new SeekableInMemoryByteChannel(tar

我可以在Java 7和Java 8中使用org.apache.commons.compress.archivers.sevenz.sevenz文件解压7z文件。但是我不能通过使用Java6来做到这一点。你能帮我用Java6解决这个问题吗?Java6找不到SeekableByteChannel:(

您可以在下面找到示例代码:

SeekableInMemoryByteChannel inMemoryByteChannel = new 
 SeekableInMemoryByteChannel(targetArray);
    SevenZFile sevenZFile = new SevenZFile(inMemoryByteChannel);

从ApacheCommonsCompress1.13开始,它在运行时需要Java7。如果您需要对Java6版本1.12或更早版本的支持,则可以工作(但可能功能较少或有一组不同的bug)


在7z 1.12及更早版本的情况下,只允许读取文件,而不允许读取任意流。正是由于迁移到Java7以及使用
seekablebytechnel
的机会,才允许支持从更一般的输入读取。

正如您在界面中看到的那样,自Java 7以来就存在
seekablebytechnel
。如果您的库依赖于它,它不适用于Java 6。可能有一个较旧的库版本在Java 6下工作?这意味着不可能将SeekableByteChannel与Java 6一起使用。我必须找到另一个解压库?SeekableByteChannel是Java SDK的一部分,但直到Java 7。这意味着您的库不适用于Java 6。但是您可以查找在Java 6下运行的同一库的早期版本。Apache项目通常为早期版本提供下载。