我正在使用JSCH库在两台服务器之间执行sftp。但是,我无法使用URL
将文件加载到getResource()
,我在运行时遇到错误。我检查了权限,它们是600,所以我们应该能够阅读它。
JSch jsch = new JSch();
File file = new File("/home/xxxxxx/.ssh/id_rsa");
Session session = null;
URL keyFileURL = null;
URI keyFileURI = null;
if (file.exists())
{
keyFileURL = SecureFTP.class.getClassLoader().getResource("/home/xxxxxx/.ssh/id_rsa");
if (keyFileURL == null)
{
System.out.println("what");
throw new RuntimeException("Key file not found in classpath");
}
}
try{
keyFileURI = keyFileURL.toURI();
}
catch(Exception URISyntaxException)
{
System.out.println("Wrong URL. LOL");
}
jsch.addIdentity(new File(keyFileURI).getAbsolutePath());
在加载资源或路径时,是否有我遗漏的东西?
答案 0 :(得分:3)
为什么不使用File.toURL
File file = new File("/home/dev85adm/.ssh/id_rsa");
if (file.exists()) {
URL keyFileURL = file.toURL();
//...