2011-09-06 1 views
0

JSch을 사용하여 SFTP를 통해 서버에 파일을 가져 오는 응용 프로그램을 만들고 있습니다.이 SSH 클라이언트가 "zDonez"를 사용하는 이유는 무엇입니까?

문서가 많지 않지만이 (프랑스) 블로그 게시물 : Un client SSH pour Java을 발견했습니다. 난 그냥 TERMINATOR 변수가 무엇인지

을 알아낼 수 :

private static final String TERMINATOR = "zDonez"; 

왜이 사용 "zDonez"합니까?

+1

실제로 'zDonez'에 대한 짧은 Google 검색 결과 [Java over SSH] (http://blog.james-carr.org/2006/07/11/ssh-over-java/)는 여기에. (이것은 또한이 코드의 근원 인 것으로 보이며 영어로되어 있습니다.) –

답변

2

"zDonez"는 실행하는 명령의 출력에 나타나지 않는 임의의 문자열입니다. 이 경우, 종결 자에 대해 다른 값을 선택해야합니다. 명령의 목적은 명령 실행이 완료된 때를 감지하는 것입니다.

1

Klas가 이미 말했듯이이 경우 zDonez은 단순히 원래 명령이 실행 된 후 원격 셸에서 인쇄 할 문자열입니다. getServerResponse() 방법은 명령이 완료되면 알고, 올바른 문자열을 반환 할 수 있습니다이 방법에 의해

command += "; echo \"" + TERMINATOR + "\" \n"; 

.

채널 유형이 shell 인 대화 형 용도로만 사용하는 것이 좋습니다. 사용자가 다음 명령을 입력 할시기를 결정할 때 사용해야합니다. (대부분의 쉘은 이런 이유로 프롬프트합니다.)

채널을 각 명령 (또는 일련의 명령)마다 사용하는 것이 더 좋지만, cd 또는 유사한 상태 변경 명령을 사용할 수는 없습니다 각 exec 채널에는 자체 셸이 있습니다.


SFTP를 들어, 당신은 모든 원격 명령을 실행할 필요가 없습니다 - exec 또는 shell 채널 대신 ChannelSftp를 사용합니다. 기본 JSch 배포에는 Sftp 예제가 있습니다.이 클래스는이 클래스에서 지원하는 작업을 사용하는 방법을 보여줍니다.

기타 일반적인 문서는 JSch Manual in the wiki에 있습니다.

(면책 조항 : 공식 소스를 기반으로 작성한이 inofficial JSch Javadoc 및 대부분의 텍스트는 Wiki 매뉴얼에 있음).

관련 문제