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



我正在做一个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 运行程序,否则此设置有效。所以我的问题是我如何让它从罐子里工作?

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

应用程序资源将在部署时成为嵌入式资源,因此明智的做法是现在就开始访问它们,就好像它们一样。 必须通过 URL 而不是文件访问嵌入资源。 请参阅信息。页面的嵌入式资源,了解如何形成 URL。

最新更新