こんにちは、別のリモート Linux マシンでファイルを読み取り、その内容をソース マシンにコピーする Java プログラムを Linux マシンで作成したいと考えています。私はそれに次のコードを使用しています
JSch jsch = new JSch();
Session session = jsch.getSession(user, host, port);
session.setPassword(password);
session.setConfig("StrictHostKeyChecking", "no");
System.out.println("Establishing Connection...");
session.connect();
System.out.println("Connection established.");
System.out.println("Crating SFTP Channel.");
ChannelSftp sftpChannel = (ChannelSftp) session.openChannel("sftp");
sftpChannel.connect();
System.out.println("SFTP Channel created.");
InputStream out = null; //.get(remoteFile);
out = sftpChannel.get(pub);
System.out.println("Read Successful");
System.out.println(pub);
StartString = pub.split("/");
i=StartString.length;
fileName =LocalWrite+StartString[i-1];
System.out.println(fileName);
OutputStream fileOut = new FileOutputStream(new File(fileName));
byte[] buf = new byte[1024];
int len;
while ((len = out.read(buf)) > 0) {
fileOut.write(buf, 0, len);
}
System.out.println("Wrote Successfull");
out.close();
fileOut.close();
sftpChannel.disconnect();
session.disconnect();`
これを試すと fileNotFound Exception が発生しますが、Windows マシンで同じコードを試すと、ファイルを読み取ってその内容をローカル マシンにコピーできます。どこで間違いを犯しているのか教えてください。