0

在 NetBeans 中,我的自定义字体从这组代码中正确加载,但是当我从可执行 jar 文件运行程序时无法加载

代码

    public static void main(String[] args) {
    Arcanus arc = new Arcanus();  
    try {
        Font customFont = Font.createFont(Font.TRUETYPE_FONT, new File("Golden-Sun.ttf")).deriveFont(12f);
        GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
        ge.registerFont(Font.createFont(Font.TRUETYPE_FONT, new File("Golden-Sun.ttf")));
        arc.setFont(customFont);
    } catch (IOException e) {
        e.printStackTrace();
    } catch (FontFormatException e) {
        e.printStackTrace();
    }
}

任何帮助将不胜感激

4

1 回答 1

2

不应File对象中读取嵌入式资源。该File对象用于读取本地文件系统中的文件。一旦你的文件被 jarred,它就变成了一种资源并且应该被这样读取。您可以InputStream使用getClass().getResourceAsStream(). 例如

InputStream is = getClass().getResourceAsStream("/Golden-sun.tff");
Font font = Font.createFont(Font.TRUETYPE_FONT, is);

Golden-sun.tff课程路径在哪里(src发展的直接孩子)

Root
   src
      Golden-sun.tff
于 2014-06-27T20:11:49.180 回答