Java applet:读取ttf文件 - 访问被拒绝

时间:2010-10-09 17:26:08

标签: java fonts applet appletviewer

我的Java applet init函数中有以下几行:

try {
  this.font = Font.createFont(
    Font.TRUETYPE_FONT,
    new File("fonts/myfont.ttf")
  ).deriveFont(24f);
  GraphicsEnvironment.getLocalGraphicsEnvironment().registerFont(font);
} catch(Exception ex){
  System.out.println(ex);
}

当我用appletviewer打开applet时,字体按预期加载。但是,当我使用任何Web浏览器打开HTML页面时,我在Java控制台中收到此错误:

  

java.security.AccessControlException:   访问被拒绝(java.io.FilePermission   fonts / myfont.ttf read)

并加载默认字体。

(怎么样)我能解决这个问题吗?

1 个答案:

答案 0 :(得分:3)

你无法使用applet访问本地文件---这是设计的!

您可以(并且应该)将字体文件嵌入.jar文件中,并使用Class.getResourceAsStream等来访问它(Font.createFont的重载需要{{1} },这正是InputStream返回的类型。