2017-03-05 5 views
0

これをeclipseで実行すると、それはうまく動作しますが、jarファイルにエクスポートして実行するとエラーが発生します。これは、jarファイルからファイルを取得するのが異なるためです。私は私がここでやろうとしています何私のコードJAR内のファイルを読む

ImageIO.write(image, "png", 
new File(System.getProperty("user.dir") + "/res/levels/savelevel.png")); 

C:\Users\computer\res\levels\savelevel.png 
(The system cannot find the path specified) 

を抱えている

エラーは、私は別の画像を使用して画像に書き込みをしようとしていますです。

+1

です見つからないのですか? – efekctive

+0

C:¥Users¥computer¥res¥levels¥savelevel.png(指定されたパスが見つかりません) – space1188

+0

回答を読んでください。 jarファイル(サブプロセスをスピンする) – efekctive

答えて

1

の場合は、をJARから取得する必要があります。getClass().getResource("a/path/relative/to/the/package/of/your/loading/class")のようなものを使用してください。今書き込みたい場合は、現在実行しているjarファイルを変更することが可能かどうかを覚えていませんが、そうしないことを強くお勧めします。

Srikanthが指摘しているように、jarはクラスパスで使用できる必要があります。

+1

これが機能するためには、jarはクラスパスになければなりません。 –

+0

ええ、私は問題の瓶がアプリケーションが走っている瓶であると仮定しています。 – Dici

+0

それはイメージである必要はありません。それ以外の場合でも、クラスパスにそのjarファイルを追加できます。ポイントは - 瓶がクラスパスになければならないことに言及する。 –

0

geIO.write(画像、「PNG」、新しいファイル(はSystem.getProperty(「はuser.dir」)は瓶の中を見ていません。これは、ローカルファイルシステムのパスのエラー?ポスト例外。ファイル

+0

それでは、私はそれをどのように瓶の中に見えるでしょうか? – space1188

+0

Javaでリソースをロードする方法を検索する – efekctive

+0

@ space1188 https://docs.oracle.com/javase/8/docs/api/java/util/jar/package-summary.html – efekctive

関連する問題