私は多くを検索しましたが、解決策を得ることができませんでした。私は、Javaプログラムを使用して、ローカルのWindowsマシンからリモートのWindowsマシンにファイルをコピーする必要があります。 I上記のコードを実行している間、JSCHでjavaを使用してローカルウィンドウマシンからリモートウィンドウマシンにファイルをコピー
JSch jsch = new JSch();
Session session = null;
session = jsch.getSession("username","hostname",22);
session.setPassword("password");
session.setConfig("StrictHostKeyChecking", "no");
session.connect();
ChannelSftp channel = null;
channel = (ChannelSftp)session.openChannel("sftp");
channel.connect();
File localFile = new File("filePath");
//If you want you can change the directory using the following line.
channel.cd("E:/xxx");
channel.put(new FileInputStream(localFile),localFile.getName());
channel.disconnect();
session.disconnect();
を試してみましたが、私は以下のエラーが直面しています、
Exception in thread "main" 2: No such file
at com.jcraft.jsch.ChannelSftp.throwStatusError(ChannelSftp.java:2846)
at com.jcraft.jsch.ChannelSftp._realpath(ChannelSftp.java:2340)
at com.jcraft.jsch.ChannelSftp.cd(ChannelSftp.java:342)
私はcygwinのは、リモートのWindowsマシンにインストールされています。 JschはWindowsのパスを見つけることができないようです。 WindowsマシンからLinuxマシンにファイルをコピーするとき、同じコードが適切に動作します。
私に上記の問題の解決方法を教えてください。または、javaでこれを達成するための他のオプションがありますか?ありがとう
ありがとうございました。それは完璧に働いた.. – Jugi