无法在Linux计算机上使用Java中的7z解压缩文件

时间:2018-02-14 08:59:31

标签: java 7zip

我有一个在Linux机器上运行的Java代码。 代码运行时,它会从Internet下载某些文件。那些'.Z'文件,所以我试图使用'7z'程序来提取数据。

当尝试手动提取它时,一切正常,数据('。clk'文件,基本上是一个可以用记事本打开的文本文件)被完美地提取出来并且所有数据都是完整的。但是当我使用java代码自动运行它时,我收到一条错误消息并且提取的文件未满,似乎提取停在中间。

对于手动提取,我使用以下命令:

7z e filename.clk.Z -o/some/path/to/extract -aoa

从Java运行时我使用这种方法:

public static void extractFile_linux(String inputFile, String outputDirectory) {
        try {
            new ProcessBuilder("7z", "e", inputFile, "-o" + outputDirectory, "-aoa").start();
        } catch (IOException ex) {ex.printStackTrace();}
    }

错误消息是:

Scanning the drive for archives:
1 file, 1050440 bytes (1026 KiB)

Extracting archive: /some/path/to/extract/igr19881.clk.Z
--
Path = /some/path/to/extract/igr19881.clk.Z
Type = Z

ERROR: Data Error : igr19881.clk

Sub items Errors: 1

Archives with Errors: 1

Sub items Errors: 1

这是手动命令的输出:

Scanning the drive for archives:
1 file, 1050462 bytes (1026 KiB)

Extracting archive: /some/path/to/extract/igr19881.clk.Z
--
Path = /some/path/to/extract/igr19881.clk.Z
Type = Z

Everything is Ok

Size:       4022169
Compressed: 1050462

这是什么问题? 为什么我无法从Java执行提取? 任何帮助,将不胜感激。谢谢。

0 个答案:

没有答案