Pregunta

El código siguiente hace su trabajo, pero deja las copias del archivo de fuentes en el directorio temporal cada vez que se ejecuta. Estos archivos se denominan + ~ JF7154903081130224445.tmp , donde el número parece aleatorio para cada archivo creado.

InputStream fontStream = this.getClass().getResourceAsStream("handsean.ttf");
Font baseFont = Font.createFont(Font.TRUETYPE_FONT, fontStream);
fontStream.close();

he encontrado años de edad, discusiones en foros en sun.com y otros recursos en la web en la que se reconoce esto como un error en JDK, donde la actualización de 1.5.0_06 a 1.5.0_08 resolvería el problema; Sin embargo, la versión que estoy utilizando es una versión posterior (1.6.0_13).

He intentado resolver el problema mediante la supresión de los archivos después de la fuente se terminaron las operaciones relacionadas, pero los archivos están bloqueados en ese momento. Los archivos sólo se pueden eliminar después de la aplicación web se ha detenido.

¿Alguien tiene una solución para esto?

¿Fue útil?

Solución

Si los archivos ttf no están dentro de un archivo, puede llamar CreateFont (Archivo) en lugar de CreateFont (InputStream)

En cuanto a la mejor de mi conocimiento, existe este error en Java 6, que es suficiente para mirar a las fuentes de la clase Font.

Otros consejos

Con JDK1.6.0_16, el administrador de fuentes parecen estar utilizando el archivo temporal como una especie de caché y sólo va a leer los glifos de la fuente cuando se le pide. También es la adición de un gancho de cierre, lo que eliminará el archivo cuando la JVM termina normalmente. Dependiendo de la máquina virtual, la representación de fuentes es quizás también delega a código nativo que necesita acceder al archivo, por lo que mantener un bloqueo en el archivo me parece razonable.

son los archivos guardados en realidad, incluso si su contenedor de servlets (que está mencionando una aplicación web) termina con regularidad, o está matándolo sin que llegue a la limpieza de sus recursos correctamente?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top