Java字体位置

时间:2016-03-30 06:54:13

标签: java macos intellij-idea gradle fonts

Java supports true type physical fonts, and looks for font files in the JRE fonts library, and then from the font location(s) defined by the host operating system。在OSX上我有一个位于$ JAVA_HOME / lib / fonts /中的arial.ttf(来自windows),我已经从/ Library / Fonts中删除了mac Arial.ttf,并且{{3}中没有任何arial字体文件}。

当我从IntelliJ启动Java SE 6应用程序(并确认System.getenv(" JAVA_HOME")设置为我的$ JAVA_HOME)时, 即使在" Invalidate Caches和Restart"之后,GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames()getAllFonts()也未列出" Arial"。当我在终端中运行相同的应用程序时,System.getenv(" JAVA_HOME")会报告相同的位置,但是" Arial"被列为可用的字体系列(我可以在我的应用程序中使用arial字体)。

  • 在终端java version "1.6.0_65"javac 1.6.0_65中,which java向我提供$JAVA_HOME/bin/javaJAVA_HOME指向JDK,而不是JRE。
  • 在IntelliJ中,项目SDK设置为相同的1.6.0_65 JDK,项目语言级别为6.
  • 在这两种情况下,我都是从gradle启动的,我指定了sourceCompatibility = 1.6
  • 在任何一种情况下都未设置
  • -Djava.awt.headless

有关从IntelliJ启动应用程序时未找到arial字体的原因的任何建议吗?

编辑:我尝试了更多的东西:

  • 将Arial Black.ttf添加到JRE目录,只有在从终端发起时才会检测到。
  • 当arial.ttf和Arial Black.ttf从JRE字体dir移动到/ Library / Fonts时,终端和IntelliJ都会拾取arial黑色字体,但现在都看不到arial字体。
  • 切换到java 8编译器,JDK,JAVA_HOME,项目语言级别和源兼容性会产生相同的结果,只有终端可以看到arial字体。

0 个答案:

没有答案