Cod*_*ddy 5 java macos fonts awt
为什么以下程序会根据我的登录方式返回不同的结果?我正在使用Java 7 update 60在新安装的Mac OS X Mavericks系统上编译和运行该程序.如果我在登录系统时在shell中编译并运行它,通常我得到的字体少于我进入系统并运行它时的字体.
该计划如下:
import java.awt.Font;
import java.awt.GraphicsEnvironment;
public class FontList
{
public static void main(String[] args)
{
final Font[] fonts = GraphicsEnvironment.getLocalGraphicsEnvironment().getAllFonts();
System.out.println("Fonts found: " + fonts.length);
for (Font font : fonts)
{
System.out.println(font.getName());
}
}
}
Run Code Online (Sandbox Code Playgroud)
正常登录时我得到521字体,如果我然后ssh并运行程序我得到725.
最初我认为这可能与我在ssh时无图形的图形环境有关 - 所以我在正常登录时像这样运行它:
java -Djava.awt.headless=true FontList
Run Code Online (Sandbox Code Playgroud)
这对输出没有影响.当我使用su登录时,也可以重现这种差异.假设我已经以stackoverflow身份登录:
su -l stackoverflow
Run Code Online (Sandbox Code Playgroud)
然后运行程序给出与使用ssh时相同的结果.
我尝试使用Apple Java 6,不管我是如何登录的,都提供相同的输出.我也在使用Java 7(Oracle和OpenJDK)的Linux上尝试过这种方法.
任何人都可以解释是什么原因导致MAC OS X上Java 7中字体可用性的这种变化?
| 归档时间: |
|
| 查看次数: |
833 次 |
| 最近记录: |