2011-07-18 7 views
2

truezip에 이상한 문제가 있습니다. 내가 다음 코드를 실행합니다 : 난 그냥 그것을 실행truezip 문제 - 디버깅 할 때 이상한 예외가 발생했습니다.

TFile.setDefaultArchiveDetector(new TArchiveDetector("zip")); 
    String zipFile = "c:\\test\\test.zip"; 
    TFile dstZip = new TFile(zipFile); 
    TFile newFile = new TFile("c:\\test\\c.txt"); 

    try { 
     newFile.cp_rp(dstZip); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

- 그것은 확인을 실행합니다.

그러나 디버깅 할 때 "중단 점"(하나도 설정하지 않음)이 라인에서 만났습니다. TFile.setDefaultArchiveDetector (new TArchiveDetector ("zip"))); 두 번째 줄의 인수가

Thread [main] (Suspended (exception ClassNotFoundException))  
URLClassLoader$1.run() line: not available [local variables unavailable]  
AccessController.doPrivileged(PrivilegedExceptionAction<T>, AccessControlContext)  line: not available [native method] 
Launcher$AppClassLoader(URLClassLoader).findClass(String) line: not available 
Launcher$AppClassLoader(ClassLoader).loadClass(String, boolean) line: not available 
Launcher$AppClassLoader.loadClass(String, boolean) line: not available 
Launcher$AppClassLoader(ClassLoader).loadClass(String) line: not available 
JSE7.<clinit>() line: 35  
FileDriver.getPriority() line: 57 
FsDriverLocator$Boot.<clinit>() line: 85  
FsDriverLocator.get() line: 59 
TArchiveDetector.<init>(FsDriverProvider, String) line: 125 
TArchiveDetector.<init>(String) line: 105 
TArchiveDetector.<clinit>() line: 80  
Test.main(String[]) line: 12  

입니다

: java.lang.ClassNotFoundException가 다음 스택

지금 java.nio.file.Path, 나는 정말이 없습니다 이 인터페이스는 java.nio2의 일부이며, 알고있는 한 TrueZip은 이것을 요구하지 않습니다.

어떤 아이디어가 있습니까?

감사

답변

2

TrueZIP이 자바 7

동적 클래스가 JSE7라고로드하고 아마 때 고전 NIO로 다시 하락하여이를 수행 할 수 보인다 새로운 NIO 클래스를 사용하려고 할 것 같다 실패합니다.

예외가 발생하더라도 TrueZIP 자체에서 처리 (잡히고 처리)되며 사용자가 무언가 잘못되었다고 볼 수 없습니다.

문제의 코드는 de.schlichtherle.truezip.JSE7이라는 클래스에 있습니다.

정적 초기화 도구 블록이 있습니다 (Java 7에만 존재하는) java.nio.file.Path 클래스에 액세스하려고 시도합니다. NoClassDefFoundError (대개 클래스가 존재하지 않기 때문에)이면 static final 필드 AVAILABLEfalse으로 설정되며 새로운 NIO 드라이버가로드되지 않습니다.

+1

그렇습니다. JSE7 클래스는 TrueZIP이 플랫폼 파일 시스템에 액세스하기위한 TrueZIP 드라이버 FILE에서 NIO.2 API를 사용할 수 있는지 테스트하는 데 사용됩니다. 버그는 아니며 기능입니다. –

관련 문제