jGit push создает исключение

Я пытаюсь использовать jGit в своем java-проекте. Я использую версию «2.0.0.201206130900-r», а моя ОС — Windows. все работало нормально, пока я не попытался сделать толчок:

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();
}
  }

я получаю следующее:

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

Может ли кто-нибудь сказать мне, что не так в моем коде?


person Johannes Beutel    schedule 12.07.2012    source источник


Ответы (1)


Кажется, вам не хватает библиотеки jsch, которая необходима для передачи через SSH. Добавьте его в свой путь к классам (добавьте его в свой pom, если вы используете Maven, или добавьте банку в свой путь к классам).

person robinst    schedule 12.07.2012