この答えは2つのことに依存します。画像ファイルが埋め込まれているかどうか。
埋め込みリソース
アプリケーションをJarして、画像がアプリケーション内に埋め込まれると、通常のファイルアクセス方法は機能しなくなります。
次のようなことをしようとしています...
new ImageIcon("../images/logo.png");
また
new File("../images/logo.png");
動作しません。これは、リソースがファイルシステムのコンテキスト内のファイルではなくなったためです(実際にはJarのZipエントリです)。
代わりに、埋め込みリソースにClass#getResource
を返すを使用する必要があります。URL
new ImageIcon(getClass().getResource("../images/logo.png"));
うまくいくでしょう。ただし、一般的には、リソースへの絶対パスを使用することをお勧めします。これは、new ImageIcon(getClass().getResource("/images/logo.png"));
一般的に中断が難しいためです(IMHO)
外部リソース
イメージへのパスは、アプリケーションの実行ポイントを基準にしています。
src
開発では、画像リソースを見つけるためにディレクトリを(おそらくフォルダから)上に移動する必要があったかもしれません。これは、Jarファイルをフォルダに保存する必要があることを意味します。このフォルダでは、画像リソースを見つける前に1レベル上に移動する必要があります。
可能であれば、可能であれば、リソースをJar内に埋め込むことをお勧めします。パッケージ化する必要のあるファイルの数を減らすと、展開が容易になり、ユーザーがそれをいじるのが(少し)難しくなります;)