【发布时间】:2020-08-14 17:26:36
【问题描述】:
public static void main(String[] args) {
Font arial = Font.getFont(ImmutableMap.of(TextAttribute.FAMILY, "Arial"));
System.out.println(arial);
}
有了这个小程序,在我的 Mac 上执行它时,它会运行(我认为)另一个出现在 Dock 上的 java 进程(见下图)。 main 方法一结束,这个图标就会消失。
有人知道为什么会发生这种情况以及如何摆脱它吗?
NB:本题出处是java POIHSSFSheet类。我正在 Web 应用程序中生成一些 xls 文件,当我调用 HSSFSheet.autoSizeColumn 时,图标出现在 Dock 中(当不调用 autoSizeColumn 时没有任何反应)。当我关注这个问题时,我发现POI 调用Font.getFont 时会出现图标。
环境:
macOS Catalina:10.15.4
java版本“1.8.0_112”
【问题讨论】:
-
那不是java vm进程运行你的程序吗?
-
这只是 Java 运行您的程序。如果您删除创建的字体,您仍然会看到它。
-
也许这只是时间问题(即获取字体信息需要一些时间)。如果你用 10,000 次迭代的
for循环替换它呢?