我试图构建一个包含非标准图片和字体的.jar,我已将其添加到项目的资源文件夹中。我可以使用以下代码将它们加载到我的项目中。
URL url = ClassLoader.getSystemResource("./some_font.ttf");
Font font = Font.createFont(Font.TRUETYPE_FONT, url.openStream());
虽然这在我在IDE中运行程序时有效,但是当导出的jar运行时,它无法加载字体。
答案 0 :(得分:12)
您可以在项目结构中创建自己的工件:
您可以在其中添加资源文件夹的目录内容。 按绿色加号并导航到您的文件夹并添加它。 然后,您可以点击build->构建工件 - >建立。 在我的例子中,jar是在./out/artifacts文件夹中创建的。
答案 1 :(得分:1)
Intellij正在处理标记为"资源"的文件夹。作为附加的类路径目录,可以通过它自己的自动完成或在你的情况下运行/调试功能来发现。尝试右键单击此文件夹,然后选择"将目录标记为">"取消标记为资源根"验证这个假设。如果它停止工作,则需要提供更可靠的路径,并考虑此文件在生成的jar文件中的位置。