2017-01-23 81 views
-4

我是新來scala.Any一個有想法是什麼是Scala的等效代碼的Java代碼等效Scala代碼

package sampleFTP 
import org.apache.commons.net.ftp.FTPClient 
import org.apache.commons.net.ftp.FTPReply; 
import org.apache.commons.net.ftp.FTPSClient; 
import com.jcraft.jsch._ 
object FTPTest { 



def main(args: Array[String]) { 
     println("Hello, world!") 
     var ftpClient= new FTPClient(); 


    val SFTPPASS = "xxxx"; 
    val SFTPWORKINGDIR = "/xxxx/xxxx"; 


    System.out.println("preparing the host information for sftp."); 

val jsch = new JSch(); 
     var session = jsch.getSession("xxxx", "xxxx", 22) 
     session.setPassword(SFTPPASS); 
     var config = new java.util.Properties(); 
     config.put("StrictHostKeyChecking", "no"); 
     session.setConfig(config); 
     session.connect(); 
     System.out.println("Host connected."); 
     var channel = session.openChannel("sftp"); 
     channel.connect(); 
     System.out.println("sftp channel opened and connected."); 


     var sftpChannel = (ChannelSftp) session.openChannel("sftp");//error in this line 
     System.out.println("Directory:" + sftpChannel.pwd()); 

     session.disconnect(); 
    } 

} 

我收到以下錯誤

值會話不是對象的成員com.jcraft.jsch.ChannelSftp

我已成功實施安全FTP連接使用jsch。如何在scala中通過jsch下載並列出文件。

+0

我想這(VAR sftpChannel =(ChannelSftp)通道;)也 – arun

回答

5

要轉換爲不同的類型在Scala中使用:

session.openChannel("sftp").asInstanceOf[ChannelSftp] 
+0

Thanks.It對我的作品! – arun

+0

請注意,鑄造在斯卡拉皺眉。模式匹配通常被認爲更好。 – irundaia