Java-апплет: чтение файла ttf - доступ запрещен - PullRequest
1 голос
/ 09 октября 2010

В моей функции инициализации апплета Java есть следующие строки:

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, шрифт загружается, как и ожидалось. Но когда я открываю HTML-страницу в любом веб-браузере, я получаю эту ошибку в консоли Java:

java.security.AccessControlException: доступ запрещен (java.io.FilePermission чтение шрифтов / myfont.ttf)

и загружен шрифт по умолчанию.

(Как) я могу это исправить?

1 Ответ

3 голосов
/ 09 октября 2010

Вы не можете получить доступ к локальным файлам с помощью апплетов - это разработано!

Вы можете (и должны) встроить файл шрифта в файл .jar и использовать Class.getResourceAsStream илихотел бы получить к нему доступ (Font.createFont имеет перегрузку, которая принимает InputStream, это именно тот тип, который возвращает Class.getResourceAsStream).

...