从Eclipse外部加载字体时出错(但在Eclipse中有效)

时间:2015-03-26 14:23:43

标签: java eclipse

当我在命令行上运行Java程序时,我在加载自定义字体时遇到问题。我收到错误消息:

  

Reason(IOException):无法读取Resources / Fonts / customFont.ttf   
  java.io.IOException:无法读取Resources / Fonts / customFont.ttf

但是,当我在Eclipse中运行程序时,会找到Font文件。

当我从Eclipse导出程序时,Font文件驻留在可运行的Jar文件中。

以下是代码:

File aFile= new File("Resources/Fonts/customFont.ttf");
try {
        System.out.println("About to access: " + aFile.toString());
        font = Font.createFont(Font.TRUETYPE_FONT, aFile);
} catch (FontFormatException e) {
        // TODO Auto-generated catch block
        System.out.println("Reason (FontFormat): " + e.getMessage());
        e.printStackTrace();
} catch (IOException e) {
        // TODO Auto-generated catch block
        System.out.println("Reason (IOException): " + e.getMessage());
        e.printStackTrace();
}

font = font.deriveFont(Font.BOLD,15);

现在,这是我尝试通过阅读其他人的帖子来实现这一目标的最新方式。

这是我尝试过的另一种方式:

String filename="/Fonts/customFont.ttf";

Font font = null;
File aFile= new File(getURL(filename).getFile());
try {
        System.out.println("About to access: " + aFile.toString());
        font = Font.createFont(Font.TRUETYPE_FONT, aFile);
} catch (FontFormatException e) {
        // TODO Auto-generated catch block
        System.out.println("Reason (FontFormat): " + e.getMessage());
        e.printStackTrace();
} catch (IOException e) {
        // TODO Auto-generated catch block
        System.out.println("Reason (IOException): " + e.getMessage());
        e.printStackTrace();
}

font = font.deriveFont(Font.BOLD,15);


private static URL getURL(String imageFilename) {
    URL aURL= null;

    aURL= Airplane.class.getResource(imageFilename);

    System.out.println("Got URL: " + aURL.toString());

     return aURL;
}

并收到以下错误消息:

  

获得网址:rsrc:字体/ customFont.ttf

     

即将访问:字体/ customFont.ttf

     

Reason(IOException):无法读取字体/ customFont.ttf

     

java.io.IOException:无法读取字体/ customFont.ttf

     

在java.awt.Font.createFont(Font.java:1008)

     

在Game.Screen.main(Screen.java:104)

感谢任何帮助!

谢谢!

0 个答案:

没有答案