【问题标题】:How can I get the directory of the offending file from this Java code如何从此 Java 代码中获取有问题的文件的目录
【发布时间】: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。但是,这并没有显示目录中的 Adob​​e Type 1 字体。我进行了命令行目录检查,然后对我找到的一个文件进行了“搜索”。这最终给了我文件资源管理器中的目录,从那里我能够删除所有 Type1 文件。呸。谢谢!
  • 我认为您应该将其添加为答案并接受它,因为它解决了您的问题,并且可能使该页面的未来访问者受益......

标签: java intellij-idea phpstorm


【解决方案1】:

我想通了。 Windows 7 为字体管理实现了一个流畅的 UI。但是,这并没有显示目录中的 Adob​​e Type 1 字体。我进行了命令行目录检查,然后对我找到的一个文件进行了“搜索”。这最终给了我文件资源管理器中的目录,从那里我能够删除所有 Type1 文件。呸。谢谢!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多