2015-01-30 2 views
3

Я пытаюсь использовать приведенный ниже код, который я получил от apache commons, чтобы сжать примеры веб-страницы, чтобы создать zip-файл, используя классы семиZ, надеясь, что быстрее сжать, чем обычный java-zip. это то, что мой код выглядитapache commons compress using 7zip

public static void main(String[] args) { 
    // TODO Auto-generated method stub 
    try{ 
    BufferedInputStream instream = new BufferedInputStream(new FileInputStream("c:/temp/test.txt")); 

    SevenZOutputFile sevenZOutput = new SevenZOutputFile(new File("c:/temp/7ztest.zip")); 
    SevenZArchiveEntry entry = sevenZOutput.createArchiveEntry(new File("c:/temp/test.txt"),"blah.txt"); 
    sevenZOutput.putArchiveEntry(entry); 
    byte[] buffer = new byte[1024]; 
    int len; 
    while ((len = instream.read(buffer)) > 0) {sevenZOutput.write(buffer, 0, len);} 

    sevenZOutput.closeArchiveEntry(); 
    sevenZOutput.close(); 
    instream.close(); 
    }catch(IOException ioe) { 
     System.out.println(ioe.toString()); 

    } 
} 

я получаю эту ошибку, которая выглядит так, не связанные

Exception in thread "main" java.lang.NoClassDefFoundError: org.tukaani.xz.FilterOptions at java.lang.J9VMInternals.verifyImpl(Native Method) at java.lang.J9VMInternals.verify(J9VMInternals.java:93)

я есть Апач пакеты импортированные

import org.apache.commons.compress.archivers.sevenz.SevenZArchiveEntry; import org.apache.commons.compress.archivers.sevenz.SevenZOutputFile;

, но не уверен, что org.tukaani .xz.FilterOptions, это не похоже, что это часть сжатия скорпиона. Есть предположения?

+0

стоит отметить, что, когда вы будете распаковывать де файл, он будет выдавать ошибку, потому что вы сжимали ее в 7z файл, но расширение .zip –

ответ

11

Как отмечалось на "Known Limitations" странице на Apache Commons:

„ формат требует иного дополнительного XZ for Java библиотеки“

Эта зависимость не является обязательным для других форматов, но вам это нужно для 7zip.

<dependency> 
    <groupId>org.tukaani</groupId> 
    <artifactId>xz</artifactId> 
    <version>1.5</version> 
</dependency> 
+1

PSA: текущая версия Apache Commons Compression (1.14) требует версии 1.6 'xz'. – Henrik

Смежные вопросы