2

我对 Java 有疑问。我使用以下代码加载新字体:

GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
ge.registerFont(Font.createFont(Font.PLAIN, getClass().getResourceAsStream("/some/packages/fonts/font.ttf")));

当我在 NetBeans 中调试它时,一切正常,这是一个截图:http: //i.imgur.com/ohJ4XRw.png

正确的字体

但是,一旦我编译我的游戏字体不加载(或至少不正确显示),像这样:http: //i.imgur.com/ou1K9ow.png

错误的字体

还有一件事 - 当我从终端运行 jar (java -jar app.jar) - 字体有效!我不知道为什么以及如何解决它。谁能帮我?

4

2 回答 2

0

我可能会发现问题。首先,你用jar打包真字体文件吗?它应该在 jar 中或与当前目录相同。

抱歉,我无法解释清楚,以下是字体文件位置的一些示例:

情况一:

%cd%/some/packages/fonts/font.ttf
%cd%/your.jar

情况2:

url of your.jar: file:///C:/some/your.jar
url of font.ttf: jar:file:///C:/some/your.jar/!some/packages/fonts/font.ttf
于 2013-12-29T16:21:47.003 回答
0

如果您说应用程序在运行命令时运行正确,请尝试以下操作:

Process proc = Runtime.getRuntime().exec("java -jar app.jar");
// make sure to provide path for it
InputStream in = proc.getInputStream();
InputStream err = proc.getErrorStream();
OutputStream out = proc.getOutputStream();
// in/out/err streams of proc
于 2013-12-28T16:14:07.943 回答