We're trying to use Apache Commons VFS to access something over SFTP. It claims to support SFTP, however we're getting a MalformedURLException when it starts. Digging around I see that apache vfs is using java.net.URL
. However the documentation tells me that it doesn't actually support sftp://
URLs.
Protocol handlers for the following protocols are guaranteed to exist on the search path :-
http, https, ftp, file, and jar
Protocol handlers for additional protocols may also be available.
I'm using java 1.6.0 on Linux. How can I prevent java.net.URL
from throwing a wobbly when it sees a sftp://
URL? I need to keep using the Apache commons VFS library, which uses java.net.URL
.
See the list of dependencies that commons-vfs requires for sftp to work. Once JSch is in the classpath, your exception no longer happen. Have a look at Apache's Wiki for examples of connecting via sftp.
I've never used VFS before, but it looks like you'd need to (at least) register an SFTP FileProvider
. It looks like it requires something like:
DefaultFileSystemManager fsm = ... /* Create and configure your FSM. */
fsm.addProvider("sftp", new SftpFileProvider());
There is probably a way to do the same thing through configuration file syntax.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With