Intellij 资源不在构建的工件中

2022-09-04 02:37:52

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

URL url = ClassLoader.getSystemResource("./some_font.ttf");

Font font = Font.createFont(Font.TRUETYPE_FONT, url.openStream());

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


答案 1

您可以在项目结构中创建自己的工件:enter image description here

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


答案 2

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


推荐