我有一个非常简单的程序,我试图添加一个目录到一个新的压缩文件。代码:
public class Encrypt {
public static void main(String[] args) {
TFile srcFile = new TFile(args[0]);
TFile destFile = new TFile("/home/myuser/archive.zip");
try {
TFile.umount();
} catch (FsSyncException e1) {
e1.printStackTrace();
}
try {
if (destFile.isArchive() || destFile.isDirectory())
destFile = new TFile(destFile, srcFile.getName());
srcFile.cp_rp(destFile);
} catch (IOException e) {
e.printStackTrace();
}
try {
TFile.umount();
} catch (FsSyncException e) {
e.printStackTrace();
}
}
}这几乎就是here中的代码。例外情况是:
Jun 17, 2011 12:10:26 PM de.schlichtherle.truezip.fs.sl.FsDriverLocator$Boot <clinit>
WARNING: No provider available for class de.schlichtherle.truezip.fs.spi.FsDriverService
Exception in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)
Caused by: java.util.ServiceConfigurationError: file (unknown file system scheme - check run time class path configuration)
at de.schlichtherle.truezip.file.TArchiveDetector.newController(TArchiveDetector.java:341)
at de.schlichtherle.truezip.fs.FsDefaultManager.getController(FsDefaultManager.java:75)
at de.schlichtherle.truezip.fs.FsDefaultManager.getController(FsDefaultManager.java:65)
at de.schlichtherle.truezip.fs.FsFailSafeManager.getController(FsFailSafeManager.java:59)
at de.schlichtherle.truezip.file.TBIO.getInputSocket(TBIO.java:291)
at de.schlichtherle.truezip.file.TBIO.cp0(TBIO.java:229)
at de.schlichtherle.truezip.file.TBIO.cp_r0(TBIO.java:193)
at de.schlichtherle.truezip.file.TBIO.cp_r0(TBIO.java:183)
at de.schlichtherle.truezip.file.TBIO.cp_r0(TBIO.java:183)
at de.schlichtherle.truezip.file.TBIO.cp_r0(TBIO.java:183)
at de.schlichtherle.truezip.file.TBIO.cp_r0(TBIO.java:183)
at de.schlichtherle.truezip.file.TBIO.cp_r0(TBIO.java:183)
at de.schlichtherle.truezip.file.TBIO.cp_r0(TBIO.java:183)
at de.schlichtherle.truezip.file.TBIO.cp_r0(TBIO.java:183)
at de.schlichtherle.truezip.file.TBIO.cp_r0(TBIO.java:183)
at de.schlichtherle.truezip.file.TBIO.cp_r0(TBIO.java:183)
at de.schlichtherle.truezip.file.TBIO.cp_r0(TBIO.java:183)
at de.schlichtherle.truezip.file.TBIO.cp_r0(TBIO.java:183)
at de.schlichtherle.truezip.file.TBIO.cp_r0(TBIO.java:183)
at de.schlichtherle.truezip.file.TBIO.cp_r0(TBIO.java:183)
at de.schlichtherle.truezip.file.TBIO.cp_r(TBIO.java:154)
at de.schlichtherle.truezip.file.TFile.cp_rp(TFile.java:3161)
at Encrypt.main(Encrypt.java:38)
... 5 more我在项目页面或其他页面上找不到任何与此异常相关的内容。以前有没有人见过这个?我使用的是TrueZip 7.1.4。
发布于 2011-06-18 02:32:57
对,您想要访问的文件系统驱动程序模块上存在运行时依赖关系。
例如,如果你想访问压缩文件,你需要在运行时类路径上拥有模块TrueZIP驱动压缩包(truezip-driver-zip)和TrueZIP驱动文件(truezip-driver-file)的JAR。
发布于 2011-06-18 00:57:35
问题是项目上缺少一个JAR依赖项:truezip-driver-file-jse7-7.2-beta-3.jar。您可以从here获得它。很难找到所有需要的文件。
发布于 2017-06-22 21:59:07
如果你正在使用Maven,你可以在你的pom.xml文件中添加下面的dependencies,例如
<dependencies>
<dependency>
<groupId>org.codehaus.mojo</groupId>
<artifactId>truezip-maven-plugin</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>de.schlichtherle.truezip</groupId>
<artifactId>truezip-driver-file</artifactId>
<version>7.7.10</version>
</dependency>
<dependency>
<groupId>de.schlichtherle.truezip</groupId>
<artifactId>truezip-file</artifactId>
<version>7.7.10</version>
</dependency>
<dependency>
<groupId>de.schlichtherle.truezip</groupId>
<artifactId>truezip-kernel</artifactId>
<version>7.7.10</version>
</dependency>
<dependency>
<groupId>de.schlichtherle.truezip</groupId>
<artifactId>truezip-driver-zip</artifactId>
<version>7.7.10</version>
</dependency>
</dependencies>然后运行mvn clean install,它应该可以工作。
https://stackoverflow.com/questions/6388983
复制相似问题