我的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)
并加载默认字体。
(怎么样)我能解决这个问题吗?
答案 0 :(得分:3)
你无法使用applet访问本地文件---这是设计的!
您可以(并且应该)将字体文件嵌入.jar
文件中,并使用Class.getResourceAsStream
等来访问它(Font.createFont
的重载需要{{1} },这正是InputStream
返回的类型。