2012-02-14 16 views
0

リモートサーバー上のjarファイル(たとえば、EARのapplication.xmlなど)からローカルマシンにファイルを読み取り、コピーしたいとします。これをネット上で検索すると、java.util.jar.JarFile APIが見つかりました。このAPIは、コンストラクター内のjarロケーションのURLではなく、入力としてストリングのみを取るので、ローカル・マシンからのみjarを読み取ります。私はorg.apache.commons.net.ftp.FTPClient APIを知っています。このAPIは、任意のファイルやjarファイルをリモートサーバからローカルマシンにコピーすることができます。しかし、私の必要条件は、リモートサーバーにあるjarファイルから1つのファイルだけをコピーすることです。リモートサーバー上のJarファイルからファイルを読み取る方法

この点で私を助けてください。

おかげ サミール

答えて

0

は、私はあなたが、これらの線に沿って何か独自のダウンロードのメカニズムを作成しようとした場合、あなたはより良い運を持っているかもしれないと思う:サーバーは、私は私の質問を編集できるように拒否している

ZipInputStream zip = null; 
    try { 
     zip = new ZipInputStream(url.openStream()); 

     ZipEntry entry; 
     do{ 
      entry = zip.getNextEntry(); 
     } while(!yourExpectedFileName.equals(entry.getName()) 


     while(zip.available()){ 
      //read your data 
     } 
     zip.closeEntry(); 

    } finally { 
     if (zip != null) 
      zip.close(); 
    } 
+0

を、ファイルが見つからなければループを終了するために、最初に 'null'をチェックするようにしてください。 – Marcelo

+0

ありがとうMarcelo。私は今、リモートマシンからローカルマシンへEARからapplication.xmlを読み込んでコピーすることができます。しかし、私はまた、EARに存在する各jar/war(完全なjar/warではない)のMANIFEST.MFだけを読んでみたいです。上記のコードは、EAR内のjarとwarのエントリのみを提供します。上記の場合は、com.jcraft.jsch。* APIを使用してInputStreamを取得しました。私のリモートサーバーはSFTPなので、InputStreamにはjsch apiを使っています。しかし今、jar API内の各jarとwarのInputStreamを取得する方法は、EARの内部でwar/jarのInputStreamを与えることができません。 – sa9689

+0

@SameerPansare私はそれが可能ではないと思うし、manifest.mfを読むために.jar(.ear内にある)全体をダウンロードしなければならないと思う。 – Marcelo

関連する問題