java 用jsch上传jar,本地某个文件夹下的所有模版文件到服务器 其中服务器上的jar和模版文件不在同一文件夹下
时间: 2023-09-19 19:10:55 浏览: 121
您可以使用JSch的Sftp功能来上传文件夹中的所有文件到服务器。以下是一个示例代码,可以上传本地文件夹中的所有模板文件到服务器的不同文件夹下:
```java
import com.jcraft.jsch.*;
import java.io.File;
import java.util.Vector;
public class SftpUploadExample {
public static void main(String[] args) {
String localTemplateFolderPath = "/path/to/local/template/folder/";
String remoteJarPath = "/path/to/remote/jar/folder/";
String remoteTemplatePath = "/path/to/remote/template/folder/";
String host = "your_host";
String username = "your_username";
String password = "your_password";
JSch jsch = new JSch();
Session session = null;
try {
session = jsch.getSession(username, host, 22);
session.setConfig("StrictHostKeyChecking", "no");
session.setPassword(password);
session.connect();
ChannelSftp channelSftp = (ChannelSftp) session.openChannel("sftp");
channelSftp.connect();
// Upload jar file to remote folder
String localJarFilePath = localTemplateFolderPath + "example.jar";
channelSftp.put(localJarFilePath, remoteJarPath);
// Upload template files to remote folder
Vector<ChannelSftp.LsEntry> files = channelSftp.ls(localTemplateFolderPath);
for (ChannelSftp.LsEntry file : files) {
if (!file.getAttrs().isDir()) {
String localFilePath = localTemplateFolderPath + file.getFilename();
String remoteFilePath = remoteTemplatePath + file.getFilename();
channelSftp.put(localFilePath, remoteFilePath);
}
}
channelSftp.disconnect();
session.disconnect();
System.out.println("Files uploaded successfully!");
} catch (JSchException | SftpException e) {
e.printStackTrace();
}
}
}
```
在此示例代码中,您需要将 `localTemplateFolderPath` 更改为您的本地模板文件夹的路径,将 `remoteJarPath` 和 `remoteTemplatePath` 更改为服务器上jar和模板文件应该上传到的路径。另外,您需要将 `host`,`username`和`password`更改为您的服务器地址,用户名和密码。
请注意,此示例代码中的连接服务器的端口号为22,如果您的端口号不同,需要更改端口号。另外,此示例代码中假设您的文件夹中只包含模板文件和一个名为 `example.jar` 的jar文件。如果您的文件夹中包含其他类型的文件,您可以根据需要进行更改。
阅读全文