0

サーバーから画像を取得するために wget を実行する Java コードを作成しようとしています。

wget が正しくインストールされていると思います。私が入力した場合:

wget http://insitu.fruitfly.org/insitu_image_storage/img_dir_38/insitu38795.jpe

ユーザー アカウント フォルダに画像が見つかりました。

次の Java コードは Ubuntu で正常に動作していましたが、プロジェクトを OSX (Mountain Lion) に移行する必要がありました。

import java.io.*;
import java.io.IOException;

public class runWget
{

  public static void main (String args[])
  {
    String whatToRun = "wget     http://insitu.fruitfly.org/insitu_image_storage/img_dir_38/insitu38795.jpe";
   try
   {
     Runtime rt = Runtime.getRuntime();
     Process proc = rt.exec(whatToRun);
     int exitVal = proc.waitFor();
     System.out.println("Process exitValue:" + exitVal);
   } catch (Throwable t)
     {
       t.printStackTrace();
     }
  }
}

OSX で実行しようとすると、ランタイム エラーが発生します。

java.io.IOException: プログラム "wget" を実行できません: エラー = 2、そのようなファイルまたはディレクトリはありません

誰かが私が間違っていることを教えていただければ幸いです。

4

5 に答える 5

3

wgetが実際に OS X システムにインストールされている場合は、フル パスを指定してみてください。

試す:

どの wget

コマンドラインから、Java アプリケーションでその完全修飾パスを使用します。

String whatToRun = "/usr/local/bin/wget http://insitu.fruitfly.org/insitu_image_storage/img_dir_38/insitu38795.jpe";
于 2012-08-02T19:21:50.247 に答える
2

明らかに、wgetOS X にはデフォルトでインストールされていません。

もっと興味深いのは、wget のような機能を独自に作成することです。

URL url = new URL("http://insitu.fruitfly.org/insitu_image_storage/img_dir_38/insitu38795.jpe");
InputStream in = url.openStream();
OutputStream os = new FileOutputStream(new File("picture.jpe"));
byte byffer[] = new byte[1024];
int nBytesRead;
while ((nBytesRead = in.read(buffer)) != -1)
{
    os.write(buffer, 0, nBytesRead);
}
os.flush();
os.close();
in.close();
于 2012-08-02T19:13:43.453 に答える
0

wgetそのOSXシステムにはインストールされていないようです。(数世代古いにもかかわらず、私のものでもありません。)インストールするか、画像をダウンロードする別の方法を見つけてください。結局、Java には HTTP サポートがネイティブに組み込まれています (java.net.URLクラスを参照してください)。

于 2012-08-02T19:14:06.940 に答える