2011-02-04 18 views
0

私は自分のアプリケーションフォルダの中に画像を含む画像フォルダを持っています。私は実行している.jarファイルを持っています。画像フォルダから画像を読み込む必要があります。いいえプロトコル:/home/images/first.jpg私はローカルフォルダから画像を読み込みます

String path=System.getProperty("user.dir")+File.separatorChar+"images"+File.separatorChar+"first.jpg"; 
try{ 
URL url=new URL(path); 
} 
catch(Exception exc){ 
} 

てみましたが、私はエラーjava.net.MalformedURLExceptionを取得したURLからロード写真、メソッドを持っています。 接頭辞のようなものを追加するか、URL画像を読み込むための良い方法がありますか?

+0

汎用例外をキャッチしないでください... – OscarRyz

+0

..キャッチ例外を(任意のタイプの)行うときに無視しないでください。ログを記録するか、スタックトレースをダンプします。例外を無視することは、盲目的に折り畳まれた背中の背部に縛られた1本の腕でデバッグしようとするようなものです。 –

答えて

1

ローカルファイルのためのプロトコルは、「ファイル://」でWindows上で、しかし、あなたは余分な「/」

を追加する必要がありますあなたは、このようなあなたのURLの初めでこれを指定することができます。

String path="file:///" + System.getProperty("user.dir")+File.separatorChar+"images"+File.separatorChar+"first.jpg"; 
+0

いいえ、プロトコルにはスラッシュが2つしかありません。しかし、UNIXパスはしばしば別のパスから始まります。 Windowsでは、ドライブの先頭にスラッシュを追加する必要があります。 – OrangeDog

+0

@OrangeDogありがとう。私はあなたのフィードバックでanwserを更新しました。 – Aaron

1

なぜあなたはURLから画像をロードする必要がありますか?パスからロードしてみませんか?それはあなたが望むものですか?理想的には、これらの画像は、瓶の内側にあることとgetResource()またはgetResourceAsStream()を使用してクラスローダによってロードする必要があり

String path= ="file://"+System.getProperty("user.dir")+File.separatorChar+"images"+File.separatorChar+"first.jpg"; 
+0

ウィンドウでは「/」を追加する必要がありますので、「file:///」のようになります。乾杯。 – mfcabrera

1

はとにかく、なぜあなたのような何かをしようとしないでください。

+0

これを行う方法?私はこの解決策が好きですが、私はこれを行う方法がわかりません – Damir

+0

私はこれが良い解決策であると信じています。 imgファイルをjarファイルに埋め込む必要があります。 (そしてそれをパックして)、そのメソッドを呼び出します。 。あなたがそれを置くならば、あなたはファイルを持っています。 getResourceAsStream()のドキュメントをチェックしてください。怠け者にしないでください: - P – mfcabrera

1

それはString path = file://"+ System.get...etc. ~

でなければなりません。しかし、おそらくあなたと同じようにそれをロードした場合、それは良いだろう:

URL url = this.getClass().getResouce("first.png"); 

そして、あなたはクラスパスにあなたのイメージを追加します。

関連する問題