【发布时间】:2013-03-20 15:20:23
【问题描述】:
我正在尝试按照以下说明定位有问题的字体文件的目录:http://devnet.jetbrains.com/docs/DOC-172
我收到字体名称错误。但是,我已经搜索并删除了匹配的文件,但是脚本不断在相同的字体名称上抛出错误。我怀疑在 Windows 7 的某个地方有一个隐藏副本,我想在输出中添加文件目录信息。
有没有办法在异常输出之前获取文件的目录信息?还是java使用文件目录结构以外的东西来导出系统中的字体列表?
import java.awt.Font;
import java.awt.GraphicsEnvironment;
public class FontTest {
public static void main(String[] args) {
Font[] fonts = GraphicsEnvironment.getLocalGraphicsEnvironment().getAllFonts();
for (int i = 0; i < fonts.length; i++) {
final Font font = fonts[i];
final String name = font.getName();
System.out.print("Checking Font: " + name);
if (font.canDisplay('a') &&
font.canDisplay('z') &&
font.canDisplay('A') &&
font.canDisplay('Z') &&
font.canDisplay('0') &&
font.canDisplay('1')) {
System.out.println(" OK.");
} else {
System.out.println();
}
}
}
}
【问题讨论】:
-
可能是一个愚蠢的问题,但是自从您删除了字体文件后,您是否尝试过重新启动?
-
一点也不!是的,我有。几次。遍历 .getAvailableFontFamilyNames() 数组会生成一个我可能曾经安装过的字体列表(我曾经在前端开发之前进行预印)但不准确。所以无论是 Windows 还是 Java 都缓存了需要刷新和重建的字体列表数据,但是如何呢?
-
我认为您应该发布字体名称,这可能会有所帮助(尽管我必须承认,这不太可能......)。在刷新和重建部分,我认为superuser.com 的人们很可能会提供帮助......不过有一个问题:你是如何摆脱字体文件的?您是删除了它们,还是卸载了它们?
-
我想通了。 Windows 7 为字体管理实现了一个流畅的 UI。但是,这并没有显示目录中的 Adobe Type 1 字体。我进行了命令行目录检查,然后对我找到的一个文件进行了“搜索”。这最终给了我文件资源管理器中的目录,从那里我能够删除所有 Type1 文件。呸。谢谢!
-
我认为您应该将其添加为答案并接受它,因为它解决了您的问题,并且可能使该页面的未来访问者受益......
标签: java intellij-idea phpstorm