2012-09-10 1 views
2

내 빌드 파일에 Ant <scp> 작업을 사용하려고합니다. 대상을 실행할 때마다 오류가 발생합니다.찾을 수 없습니다. com/jcraft/jsch/UserInfo

cannot be found: com/jcraft/jsch/UserInfo 

이 문제가 Ant 1.7에 관한 이야기를 읽은 적이 있습니다. 일부 게시물은 ant_home lib에서 ant-jsch.jar 파일을 제거하는 것에 대해 설명합니다. 불행히도 나는 ant_home이 많은 다른 프로젝트에서 공통적이며 lib 디렉토리에서 jar 파일을 제거하거나 업데이트 할 수 없기 때문에 그렇게 할 수 없습니다.

이 문제를 Ant 구성을 사용하여 해결할 수있는 방법이 있습니까?

답변

3

ant-jsch.jar에는 Apache Ant 팀에서 개발 한 ssh 관련 작업이 포함되어 있으며 jsch.jar에는 해당 ssh 작업의 종속성 인 jsch 라이브러리가 들어 있습니다.

약간의 확인을하십시오. jsch.jar$ANT_HOME/lib에 있는지 확인하고 그 용기에 UserInfo.class이 있는지 확인하십시오.

위의 경우, jsch.jar의 최신 버전을 다운로드하여 $ANT_HOME/lib에 넣으십시오.

저는 현재 작년에 아무런 문제없이 다운로드 한 jsch.jar으로 개미 1.8.4를 사용하고 있습니다.


업데이트 :

확인 먼저이 페이지 :

http://ant.apache.org/manual/install.html#optionalTasks

<scp> 및 기타 SSH 작업 (개미-jsch.jar)가 개미 바이너리 배포판에 포함되어 있습니다 기본적으로. 기본적으로 Ant의 lib 디렉토리에 포함되어 있기 때문에 <scp>을 사용하려면 <taskdef>을 쓸 필요가 없습니다. 난 당신이 다음 사항에 해당 디렉토리에 jsch.jar을 넣어하는 것이 좋습니다 :

  1. 이들의 ssh 작업 데프 클래스 경로를 지원하지 않는, 즉, 당신이 jsch.jar를 가리키는 <classpath>을 정의하고 다음에 참조 할 수 없습니다 ssh 작업에서.
  2. 또한 시스템의 CLASSPATH 환경 변수에 포함 된 디렉토리에 jsch.jar을 넣을 수도 있지만 좋은 방법은 아닙니다.
  3. 우리는 일반적으로 작업과 해당 종속성을 동일한 디렉토리에 넣습니다.
+0

안녕하세요. jsch jar 파일이 있지만 ANT_HOME/lib 디렉토리에 없습니다. 그것의 별도 디렉토리 아래에. 다른 위치에서 jar 파일을로드하는 방법이 있습니까? 클래스 패스 태스크를 사용하면 다른 클래스 로더를 사용하게됩니다. 죄송합니다. 개미에 대한 나의 제한된 지식에 유의하십시오. –

+0

업데이트 된 답변보기 – coolcfan

+0

도와 주셔서 감사합니다. lib 디렉토리에 jar 파일이 있으면 작동합니다. –