使用java保持从远程服务器更新文件的简单方法?

时间:2012-09-05 16:06:27

标签: java

我希望使用Java访问远程服务器,访问文件并保持文件更新,或者更新服务器上的文件。

是否有一种使用username @ host和password访问远程服务器的简单方法,这样我就可以上传和下载文件了?

由于

3 个答案:

答案 0 :(得分:0)

您可以使用JSch远程通过ssh访问文件。

答案 1 :(得分:0)

使用适当的工具:rsync

答案 2 :(得分:0)

如果您想在打开ssh连接时连接到计算机, 要运行OS命令,您可以使用trilead。 这是打开连接的方法的示例。

    public static Connection newConnectionNoPassword(String host, String username, File privateKey) {
    Connection newConn = new Connection(host);
    try {
        newConn.connect(); // Ignoring ConnectionInfo returned value.
        //If the authentication was successful the authenticated connection will be returend
        if ( newConn.authenticateWithPublicKey(username, privateKey, null)){
            return newConn;
        }else{
            newConn.close();
            return null;
        }
    } catch (IOException ioe) {
        newConn.close();
        ioe.printStackTrace();
        return null;
    }
}

如果您使用maven,可以通过向pom.xml添加以下依赖项来获取它:

    <dependency>
        <groupId>com.trilead</groupId>
        <artifactId>trilead-ssh2</artifactId>
        <version>build213-svnkit-1.3-patch</version>
    </dependency>

为了将\下载文件从\上传到服务器,您可以使用trilead SCPClient。 以下是将文件从远程服务器下载到本地文件夹的示例:

    public void downloadFiles(String[] remoteFiles, String localDir) throws IllegalArgumentException, IOException {
    checkNotEmpty(localDir);
    checkNotEmpty(remoteFiles);

    File dir = new File(localDir);
    if (!dir.exists() || !dir.mkdirs()) {
        throw new IOException("Failed to create local directory : " + localDir);
    }

    SCPClient scp = new SCPClient(this.conn);
    try {
        scp.get(remoteFiles, localDir);
    } catch (IOException e) {
        throw new IOException("Failed to copy remote files to local folder", e);
    }
}

希望有所帮助......