我正在使用此代码从服务器下载文件:
import com.jcraft.jsch.Channel;
import com.jcraft.jsch.ChannelSftp;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;
public class Main {
public static void
main(String[] args) {
String host = "hostname";
String login = "username";
String password = "pass";
int port = 22;
String remoteDirectory = "directoryPath";
String localDirectory = "directoryPath";
Session session = null;
Channel channel = null;
ChannelSftp sftpChannel = null;
try{
JSch jsch = new JSch();
session = jsch.getSession(login, host, port);
session.setPassword(password);
java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);
session.connect();
channel = session.openChannel("sftp");
channel.connect();
sftpChannel = (ChannelSftp)channel;
sftpChannel.get(remoteDirectory, localDirectory);
}
catch (Exception ex) {
ex.printStackTrace();
}
}
}
如您所见,username
,password
,host
和port
是硬编码的。我需要从我在计算机上的settings.txt
文件中获取这些属性,但是没有成功实现这一点。
答案 0 :(得分:1)
settings.txt到项目的根目录并使用此代码加载它:
Properties properites = new Properties();
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
InputStream is = classLoader.getResourceAsStream("/settings.txt");
properties.load(is);