2011-06-17 14 views
2

新しいzipファイルにディレクトリを追加しようとしている、本当にシンプルなプログラムがあります。コード:cp_rpメソッドを呼び出すときにTrueZip例外がスローされる

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を使用しています。

答えて

2

右にアクセスするファイルシステムドライバモジュールには、実行時の依存関係があります。

など。 ZIPファイルにアクセスするには、モジュールのJARを実行時クラスのパスにTrueZIPドライバZIP(truezip-driver-zip)とTrueZIPドライバファイル(truezip-driver-file)が必要です。

0

問題はプロジェクトにJAR依存関係がありませんでした:truezip-driver-file-jse7-7.2-beta-3.jarhereから入手できます。必要なすべてのファイルを見つけるのはかなり難しいです。

+0

すべての依存関係を持つ単純なjarファイルを追加する方がよいでしょう。http://repo1.maven.org/maven2/de/schlichtherle/truezip/truezip-samples/7.0/truezip-samples-7.0-jar-withdependencies .jar。 – Dan

0

Mavenを使用している場合は、pom.xmlファイルに次のように追加することができます(例:)。

<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を実行してください。

関連する問題