2017-01-19 17 views
0

mksnt 툴킷으로 구성된 Windows VM이 있습니다. 따라서 내 경로가 C :/abc/xyz가 될 것입니다.mksnt 툴킷이있는 Windows에서 JSCH에서 디렉토리 경로를 인식하지 못합니다.

Jsch 유틸리티를 사용하여 Linux 상자에서이 Windows 시스템에 원격으로 연결하려고합니다. 성공적으로 연결할 수 있으며 특정 디렉토리 경로를 확인하려고 할 때 은 존재하지 않는다고 말합니다.. 그러나 경로는 Windows 상자에 있습니다.

SftpATTRS dirAttributes=null; 
try{ 
    testLog.info("Looking for directory :"+destinationDir); 
    dirAttributes = sftpc.stat(destinationDir); 
} catch(SftpException s){ 
    testLog.info("Directory does not exists !!!\n"+s.fillInStackTrace().toString());; 
} catch (Exception e){ 
    testLog.info("Directory does not exists !!!\n"+e.fillInStackTrace().toString());; 
} 

위의 코드는 내가 리눅스 < 할 경우 원활하게 작동 - - 다음

대상 디렉토리를 찾습니다 내 Jsch 코드> 윈도우 I -> 리눅스 원격 호출을하고 디렉토리를 확인하지만, 리눅스 <와 이 문제가 발생했습니다. mksnt가 설치되어 있기 때문에 내가 디렉토리로 이동하고 "PWD"할 경우

은, -는 "C :/ABC/XYZ"인쇄

Jsch이 경로를 처리하거나 인식 할 수없는 경우 I는 명확하지 않다 mksnt가 설치되어 있기 때문입니다. 아무도 솔루션을 공유하거나 해결하기 위해 도움이 될만한 포인터를 제공 할 수 있습니까?

PS : cygwin 또는 다른 도구를 설치할 수 없습니다. 이것은 env입니다. 필자에게 제공되었으며 Jsch 유틸리티를 통해서만 Linux 호스트로부터 원격 호출을해야합니다.

답변

1
C:/abc/xyz 

SFTP를 프로토콜에 관계없이 SFTP 서버의 운영 체제, 파일 경로 이름에 대해 유닉스와 같은 이름 지정 방식을 사용합니다. SFTP 명명 체계에서 절대 경로 이름은 "/"로 시작합니다. "C"로 시작하는 이름은 SFTP 세션의 작업 디렉토리에있는 파일을 참조합니다.

즉, Windows 기반 SFTP 서버는 예상대로이 경로 이름을 해석하지 못할 수 있습니다. 대화식 SFTP 클라이언트를 사용하여 Windows SFTP 서버에 로그인하고 관심있는 파일 및/또는 디렉토리를 찾고 SFTP를 통해 액세스 할 올바른 경로를 결정해야합니다.

Windows SFTP 서버가 Cygwin OpenSSH SFTP 서버를 실행하는 경우 올바른 경로는 "/ cygdrive/c/abc/xyz"와 같을 것이라고 생각합니다.