java.lang.ClassNotFoundException:org.apache.commons.vfs2.impl.StandardFileSystemManager

时间:2015-03-13 12:20:51

标签: java sftp classnotfoundexception

我正在尝试通过SFTP获取文件。我可以使用Java程序将文件从SFTP Server提取到Windows,但是相同的Java程序在UNIX中不起作用,它给出了主题行中提到的错误。该程序中提供了jar。下面是我正在使用的代码。有人可以帮忙解决这个问题。

package com.tgt.ftp;
import java.io.File;
import java.io.FileInputStream;
import java.util.Properties;
import org.apache.commons.vfs2.*;
import org.apache.commons.vfs2.impl.*;
import org.apache.commons.vfs2.provider.sftp.*;

public class GetMyFiles {
  static Properties props;
  public static void main(String[] args) {
    GetMyFiles getMyFiles = new GetMyFiles();
    if (args.length < 1)
    {
        System.err.println("Usage: java " + getMyFiles.getClass().getName()+
                " Properties_filename File_To_Download ");
        System.exit(1);
    }
    String propertiesFilename = args[0].trim();
    String fileToDownload = args[1].trim();
    getMyFiles.startFTP(propertiesFilename, fileToDownload);
  }

  public boolean startFTP(String propertiesFilename, String fileToDownload){
    props = new Properties();
    System.out.println("Vamshi============>>>>>>>>>>>>>>>>>>");
    StandardFileSystemManager manager = new StandardFileSystemManager();
    try {
        props.load(new FileInputStream(propertiesFilename));
        String serverAddress = props.getProperty("serverAddress").trim();
        String userId = props.getProperty("userId").trim();
        String password = props.getProperty("password").trim();
        String remoteDirectory = props.getProperty("remoteDirectory").trim();
        String localDirectory = props.getProperty("localDirectory").trim();

        //Initializes the file manager
        manager.init();

        //Setup our SFTP configuration
        FileSystemOptions opts = new FileSystemOptions();
        SftpFileSystemConfigBuilder.getInstance().setStrictHostKeyChecking(opts, "no");
        SftpFileSystemConfigBuilder.getInstance().setUserDirIsRoot(opts, true);
        SftpFileSystemConfigBuilder.getInstance().setTimeout(opts, 10000);

        //Create the SFTP URI using the host name,userid,password,remote path and file name
        String sftpUri = "sftp://" + userId + ":" + password + "@" + serverAddress + "/" + 
                remoteDirectory + fileToDownload;

        // Create local file object
        String filepath = localDirectory + fileToDownload;
        File file = new File(filepath);
        FileObject localFile = manager.resolveFile(file.getAbsolutePath());
        // Create remote file object
        FileObject remoteFile = manager.resolveFile(sftpUri, opts);
        // Copy local file to sftp server
        localFile.copyFrom(remoteFile, Selectors.SELECT_SELF);
        System.out.println("File download successful");
    }
    catch (Exception ex) {
        ex.printStackTrace();
        return false;
    }
    finally {
        manager.close();
    }
    return true;
  }
}

0 个答案:

没有答案