質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

Q&A

1回答

11793閲覧

Javaからサーバへの sftp送受信

退会済みユーザー

退会済みユーザー

総合スコア0

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

0グッド

0クリップ

投稿2016/01/15 15:42

編集2016/01/17 03:59

###前提・実現したいこと
Javaからサーバへの sftp送受信をしたいのですが、
どのようなプログラムを作るのかわかりません。

試したのですが、このようなエラーがでます

※補足
sshの設定もしています。

サンプルプログラムなど上げて頂いたら、嬉しいです。

###エラーメッセージ

org.apache.commons.net.MalformedServerReplyException: Could not parse response code.
Server Reply: SSH-2.0-OpenSSH_6.6.1p1 Ubuntu-2ubuntu2
at org.apache.commons.net.ftp.FTP.__getReply(FTP.java:337)
at org.apache.commons.net.ftp.FTP.__getReply(FTP.java:294)
at org.apache.commons.net.ftp.FTP.connectAction(FTP.java:400)
at org.apache.commons.net.ftp.FTPClient.connectAction(FTPClient.java:924)
at org.apache.commons.net.SocketClient.connect(SocketClient.java:183)
at org.apache.commons.net.SocketClient.connect(SocketClient.java:203)
at FtpClientHelper$FTPClass.sendFile(FtpClientHelper.java:48)
at FtpClientHelper.test(FtpClientHelper.java:27)
at FtpClientHelper.main(FtpClientHelper.java:19)

Java

1 2 3import java.io.FileInputStream; 4import java.io.FileOutputStream; 5import java.io.IOException; 6import java.io.InputStream; 7import java.io.OutputStream; 8 9import org.apache.commons.net.ftp.*; 10 11 12public class FtpClientHelper { 13 private static final int FTP_PORT = ポート番号; 14 private static final String LOCALHOST = "IPアドレス"; 15 private static final String USER = "ID" ; 16 private static final String PASSWORD = "パスワード" ; 17 18 public static void main(String args[]){ 19 test(); 20 } 21 22 23 public static void test() { 24 try { 25 //ファイルアップロード 26 FileInputStream fis = new FileInputStream("C:\\Users\\ユーザフォルダ\\Desktop\\新しいテキスト ドキュメント.txt"); 27 FTPClass.sendFile("remoteFilename", fis); 28 29 //ファイルダウンロード 30 //FileOutputStream fos = new FileOutputStream("downloadfile.txt"); 31 //FTPClass.retrieveFile("/data/downloadfile", fos); 32 33 } catch (Exception e) { 34 e.printStackTrace(); 35 } 36 } 37 38 39 static class FTPClass { 40 41 42 //ファイルアップロード 43 public static void sendFile (String remoteFilename, InputStream is ) throws Exception { 44 FTPClient ftpclient = new FTPClient(); 45 46 try { 47 //指定するホスト、ポートに接続します 48 ftpclient.connect(LOCALHOST, FTP_PORT); 49 // System.out.println("とおった"); 50 51 // コネクト 52 if (!FTPReply.isPositiveCompletion(ftpclient.getReplyCode())) { 53 Exception ee = new Exception("Can't Connect to :" + LOCALHOST); 54 throw ee; 55 } 56 57 //ログイン 58 if (ftpclient.login(USER, PASSWORD) == false) { 59 Exception ee = new Exception("Invalid user/password"); 60 throw ee; 61 } 62 63 //ファイル転送モード設定 64 ftpclient.setFileType(FTPClient.BINARY_FILE_TYPE); 65 66 //ファイル転送 67 ftpclient.storeFile(remoteFilename, is); 68 69 } catch (IOException e) { 70 throw e; 71 } finally { 72 try { 73 ftpclient.disconnect(); //接続解除 74 } catch (IOException e) { 75 } 76 } 77 78 } 79 80 81 82 //ファイルダウンロード 83 public static void retrieveFile(String remoteFilename, OutputStream os) throws Exception { 84 FTPClient ftpclient = new FTPClient(); 85 86 try { 87 //指定するホスト、ポートに接続します 88 ftpclient.connect(LOCALHOST, FTP_PORT); 89 90 // コネクト 91 if (!FTPReply.isPositiveCompletion(ftpclient.getReplyCode())) { 92 Exception ee = new Exception("Can't Connect to :" + LOCALHOST); 93 throw ee; 94 } 95 96 //ログイン 97 if (ftpclient.login(USER, PASSWORD) == false) { 98 Exception ee = new Exception("Invalid user/password"); 99 throw ee; 100 } 101 102 //ファイル転送モード設定 103 ftpclient.setFileType(FTPClient.BINARY_FILE_TYPE); 104 105 // ファイル受信 106 ftpclient.retrieveFile(remoteFilename, os); 107 108 } catch (IOException e) { 109 throw e; 110 } finally { 111 try { 112 ftpclient.disconnect(); //接続解除 113 } catch (IOException e) { 114 } 115 } 116 } 117 118 119 } 120} 121

###補足情報(言語/FW/ツール等のバージョンなど)
Eclipse Luna GUI
Ubuntu 2.0
Winscp

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tanat

2016/01/15 19:44

こちらの質問が他のユーザから「質問の範囲が広すぎる」という評価を受けています わからない点を明確にし、調査したこと・試したことと共に記入していただくと、回答が得られやすくなります。
ps13zier

2016/01/15 21:02

こちらの質問が他のユーザから「質問の範囲が広すぎる」という評価を受けています わからない点を明確にし、調査したこと・試したことと共に記入していただくと、回答が得られやすくなります。
cateye

2016/01/16 00:19

「試したのですが~」何を試したのでしょう? ソースはありますか? エラーメッセージでググると700件ほどヒットしますが確認しましたか?
JMA

2016/01/16 02:27

こちらの質問が他のユーザから「質問の範囲が広すぎる」という評価を受けています わからない点を明確にし、調査したこと・試したことと共に記入していただくと、回答が得られやすくなります。
guest

回答1

0

Apache Commons Netを使用されているように見受けられますが、このライブラリはsftpをサポートしていません。

参考: java - Secure FTP with org.apache.commons.net.ftp.FTPClient - Stack Overflow

自身で使用したことはないですが、上記リンク先でも言及のあるjsch(サンプル)が使われているのを見かけたことは何度かあります。

投稿2016/01/19 06:21

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問