我试图使用从Apache Commons Compress示例网页获取的以下代码来创建一个Zip文件,使用SevenZ类希望它比普通的Java Zip更快地压缩。以下是我的代码:
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)
我已经导入了Apache的相关包:
import org.apache.commons.compress.archivers.sevenz.SevenZArchiveEntry; import org.apache.commons.compress.archivers.sevenz.SevenZOutputFile;
但是我不确定org.tukaani.xz.FilterOptions是什么,它似乎并不属于Apache Commons Compress。有什么想法吗?