2012-07-12 10 views
0

내 Java 프로젝트에서 jGit을 사용하려고합니다. 내가 사용하는 버전은 "2.0.0.201206130900-r"이고 내 OS는 Windows입니다.jGit 푸시가 예외를 생성합니다.

Exception in thread "main" java.lang.NoClassDefFoundError: com/jcraft/jsch/JSchException 
at org.eclipse.jgit.transport.Transport.<clinit>(Transport.java:111) 
at org.eclipse.jgit.api.PushCommand.call(PushCommand.java:141) 
at Application.main(Application.java:76) 
Caused by: java.lang.ClassNotFoundException: com.jcraft.jsch.JSchException 
at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:307) 
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:248) 
... 3 more 

하는 사람이 내 코드에 어떤 문제가 있는지 말해 PLS 수 :

public static void main(String[] args) { 

    File gitDir = new File("c:\\new-repo\\"); 

try { 

     String localPath = "c:\\new-repo\\"; 
     Repository localRepo = new FileRepository(localPath + ".git"); 
     localRepo.create(); 
     Git git = new Git(localRepo); 

     git.add().addFilepattern("c:\\test.txt").call(); 

     git.commit().setMessage("testcommit").call(); 

     git.push().call(); 

    localRepo.close(); 
} catch (IllegalStateException ise) { 
     System.out.println("The repository already exists!"); 
} catch (IOException ioe) { 
     System.out.println("Failed to create the repository!"); 
} catch (NoFilepatternException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} catch (GitAPIException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 
    } 

내가 얻을 것은 다음과 같다 : 내가 푸시을 시도 할 때까지 모든 괜찮 았는데?

답변

1

SSH를 푸시하는 데 필요한 jsch 라이브러리가 누락 된 것 같습니다. 클래스 경로에 추가하십시오 (Maven을 사용 중이거나 classpath에 jar 파일을 추가하는 경우 pom에 추가하십시오).

관련 문제