【问题标题】:Why Java Font add a java icon in the Dock of macOs? [duplicate]为什么 Java Font 在 macOs 的 Dock 中添加 java 图标? [复制]
【发布时间】: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 循环替换它呢?

标签: java macos java-font


【解决方案1】:

由于以下类,它会暂时发生:

java.awt.Font;
java.awt.font.TextAttribute;

简而言之,任何使用 AWT 或 Swing 库的代码都会发生这种情况。

【讨论】:

  • 嗯,我明白了,你知道如何禁用它吗?
  • 我不知道。如果我找到禁用它的方法,我会发布更新。
  • 好的,谢谢,还有一件事:图标后面的进程是和程序一样还是别的?
  • 这是Java的标准图标,也与System Preferences中的Java Control Panel图标相匹配。
猜你喜欢
  • 1970-01-01
  • 2013-12-03
  • 1970-01-01
  • 2014-03-05
  • 1970-01-01
  • 2023-02-12
  • 2011-08-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多