Intellij资源不在构建工件中

我正在尝试构建一个包含非标准图像和字体的.jar,我已将其添加到项目的资源文件夹中。 我可以使用以下代码将它们加载到我的项目中。

URL url = ClassLoader.getSystemResource("./some_font.ttf"); Font font = Font.createFont(Font.TRUETYPE_FONT, url.openStream()); 

虽然这在我在IDE中运行程序时有效,但是当导出的jar运行时,它无法加载字体。

您可以在项目结构中创建自己的工件: 在此处输入图像描述

在那里,您可以添加资源文件夹的目录内容。 按绿色加号并导航到您的文件夹并添加它。 然后,您可以单击build-> build artifacts – > build。 在我的例子中,jar是在./out/artifacts文件夹中创建的。

Intellij将标记为“资源”的文件夹视为附加的类路径目录,这些目录可以通过它自己的自动完成或在您的运行/调试function中发现。 尝试右键单击此文件夹并选择“将目录标记为”>“取消标记为资源根”以validation此假设。 如果它停止工作,则需要提供更可靠的路径,并考虑此文件在生成的jar文件中的位置。