Я недавно начал работать над разработкой приложений с использованием Java.Цель приложения состоит в том, чтобы обработать некоторую информацию API и выходную информацию в виде файла Excel.JAR находится на сервере и запускается, когда пользователь отправляет запрос на клиент (локальный компьютер).
Приложение успешно создает файл Excel, но на сервере.Я пытался использовать подход JAVA ChannelSftp для загрузки с сервера на мой локальный компьютер (местоположение клиента), но он создает новый файл в расположении JAR (то есть в расположении сервера) вместо расположения клиента.Фрагмент кода приведен ниже, и в папке JAR создается файл с именем файла C: \ Users \ PFName-CFName_Co.xlsx
String SerDir=System.getProperty("user.home") + "/Desktop/";
String LocDir="C:\Users\";
String SerFC = SerDir+PFName+"-"+CFName+"_Co.xlsx";
String LocFC = LocDir+PFName+"-"+CFName+"_Cos.xlsx";
Session session = null;
ChannelSftp sftpChannel=null;
Channel channel = null;
JSch jsch = new JSch();
try
{
session = jsch.getSession(username, hostname, 22);
session.setConfig("StrictHostKeyChecking","no");
session.setPassword(password);
Properties config = new Properties();
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);
session.connect();
channel = session.openChannel("sftp");
channel.connect();
sftpChannel =(ChannelSftp) channel;
sftpChannel.cd(SerDir);
File file = new File(SerFC);
byte[] buffer = new byte[1024];
BufferedInputStream bis;
bis = new BufferedInputStream(sftpChannel.get(file.getName()));
File newFile = new File(LocDir + file.getName());
// Download file
OutputStream os = new FileOutputStream(newFile);
BufferedOutputStream bos = new BufferedOutputStream(os);
int readCount;
while ((readCount = bis.read(buffer)) > 0) {
bos.write(buffer, 0, readCount);
}
bis.close();
bos.close();
Пожалуйста, проверьте и помогите мне, как загрузить файл в расположение клиента(в любом месте с диска)