私は現在、jarファイルとして友人に送る必要があるプログラムを書いています。プログラムには、プログラムが正常に動作するためにロードする必要がある画像があり、そのすべてを1つのjarファイルに格納します。現在のところ、実行可能なjarやコマンドラインで実行すると動作しません。しかし、それはnetbeansで動作します。私のjarファイルは画像をロードしません
ここで私が使用しているコードです:
を私が使用している画像をロードするには:私もちょうど
getClass().getResource(path)
ラインを試してみたURLのために
protected ImageIcon createImageIcon(String path, String description)
{
java.net.URL imgURL = getClass().getClassLoader().getResource(path);
if (imgURL != null)
{
return new ImageIcon(Toolkit.getDefaultToolkit()
.getImage(imgURL),description);
}
else
{
System.err.println("Couldn't find file: " + path);
return null;
}
}
は、画像が作成されるはずである:
this.img =createImageIcon(File.separator+"."+File.separator
+"resources"+File.separator+"tiles"+File.separator+"tile.png","tile");
私のjarファイルは、クラスファイルとリソースフォルダの両方を最上位に含むフォルダでセットアップされています。
私はこれを解決する方法を模索しましたが、動作するものは何も見つかりません。
ありがとうございました。
あなたはイメージが作成されようとしている場所のファイル名を渡していますか?これが当てはまる場合、ファイルが/./resources/tiles/tile.pngに保存されていることを意味します。これはファイルシステムのルートレベルにある "/resources/tiles/tile.png"に相当します。このケースでは、クラスパスによってクラスパスが見つかると、それは見つからないでしょう。 –
File.separatorの代わりに/を使用し、 "/./resources/titles/tile"の代わりに "/resources/titles/tile.png"を使用する方法システムに応じて不正なパスになる可能性があります。 – dvhh