我遇到了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)时 - 字体有效!我不知道为什么以及如何解决它。谁能帮我?
答案 0 :(得分: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
答案 1 :(得分:0)
我可能会发现问题。首先,你用jar包装真正的字体文件?它应该在jar的旁边或与当前目录相同。
抱歉,我无法解释清楚,这里有一些字体文件位置的例子: 情况1:%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