为可执行jar内的子目录指定文件路径

时间:2018-04-09 02:41:02

标签: java image swing jar embedded-resource

我正在研究一个java项目并将其变成一个可执行的jar。在jar中,包含了所有正确的文件,但是在运行jar时,图像不会显示。

当我从命令行运行程序时,程序能够正确显示所有内容。

我认为问题可能是因为我在代码中设置文件路径的方式? 以下是我的设置示例:

private static String imgPath;
...
    imgPath = String.format("img%d.gif", value);
...
public static ImageIcon getImageIcon() {
    ImageIcon ii = new ImageIcon("content/dice/" + imgPath);
    return ii;
}
//getImageIcon() is later called by another class

除非我尝试从可执行jar运行程序,否则此设置有效。所以我的问题是我如何从罐子里开始工作?

1 个答案:

答案 0 :(得分:3)

第一个错误是假设Jar中有一个文件系统(目录和等)。资源的路径可能看起来像目录&文件,但没有目录或文件。

应用程序资源在部署之前将成为嵌入式资源,因此立即开始访问它们是明智之举。必须通过URL而不是文件访问。有关如何形成网址,请参阅info. page for embedded resource