java 用jsch上传指定jar,本地某个文件夹下的所有模版文件到服务器 其中服务器上的jar和模版文件不在同一文件夹下
时间: 2023-09-19 10:10:55 浏览: 91
Java如何实现上传文件到服务器指定目录
5星 · 资源好评率100%
好的,您可以使用以下代码实现:
```java
import com.jcraft.jsch.*;
import java.io.*;
public class SFTPUploader {
public static void main(String[] args) {
String user = "username";
String password = "password";
String host = "hostname";
int port = 22;
String jarFilePath = "/local/path/to/jar/file.jar";
String templateFolderPath = "/local/path/to/template/folder";
String remoteJarFilePath = "/remote/path/to/jar/file.jar";
String remoteTemplateFolderPath = "/remote/path/to/template/folder";
try {
JSch jsch = new JSch();
Session session = jsch.getSession(user, host, port);
session.setPassword(password);
session.setConfig("StrictHostKeyChecking", "no");
session.connect();
ChannelSftp channelSftp = (ChannelSftp) session.openChannel("sftp");
channelSftp.connect();
// Upload the jar file
File jarFile = new File(jarFilePath);
if (jarFile.exists()) {
channelSftp.put(jarFilePath, remoteJarFilePath);
} else {
System.out.println("Jar file not found at " + jarFilePath);
}
// Upload the template files
File templateFolder = new File(templateFolderPath);
if (templateFolder.exists() && templateFolder.isDirectory()) {
File[] templateFiles = templateFolder.listFiles();
for (File templateFile : templateFiles) {
if (templateFile.isFile()) {
channelSftp.put(templateFile.getAbsolutePath(), remoteTemplateFolderPath + "/" + templateFile.getName());
}
}
} else {
System.out.println("Template folder not found at " + templateFolderPath);
}
channelSftp.disconnect();
session.disconnect();
} catch (JSchException | SftpException e) {
e.printStackTrace();
}
}
}
```
其中,`user`、`password`、`host`、`port` 分别为服务器的用户名、密码、主机名和端口号,`jarFilePath` 和 `templateFolderPath` 分别为本地 jar 文件和模版文件夹的路径,`remoteJarFilePath` 和 `remoteTemplateFolderPath` 分别为服务器上存放 jar 文件和模版文件的路径。您只需要将这些参数替换成您自己的即可。
阅读全文