当前位置: 首页 > 知识库问答 >
问题:

在jar中加载字体作为资源失败

拓拔麒
2023-03-14

我正在使用从资源加载的自定义字体。此代码在Eclipse中完美运行,但在作为jar运行时会出现错误。

try {
     java.io.InputStream inputStream = getClass().getResourceAsStream("/fonts/xkcd.ttf");
     iybfont = Font.createFont(Font.PLAIN, inputStream); //CRASHES ON THIS LINE
 } catch (Exception e) {
        e.printStackTrace();
        System.out.println(e);
}

作为jar运行时,会出现以下错误(从命令提示符窗口):

java.io.IOException: Problem reading font data.
    at java.awt.Font.createFont0(Unknown Source)
    at java.awt.Font.createFont(Unknown Source)
    at vbday.Start.initialize(Start.java:83)
    at vbday.Start.<init>(Start.java:45)
    at vbday.Start.main(Start.java:39)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)

第83行如上述注释所示

共有1个答案

长孙绍辉
2023-03-14

问题是文件名大小写。Eclipse显然纠正了扩展中的错误大小写,但最终的jar没有。

已更改. getResourceAsStream("/fonts/xkcd.ttf");. getResourceAsStream("/fonts/xkcd. TTF");

 类似资料:
  • 在使用Maven捆绑JAR文件中的资源时,我有一种感觉,我错过了一些关键的东西。我的目录结构是标准的Maven结构(即\src\main\java,\src\main\Resources)。 使用IDE时,我将资源文件引用为\main\resources\images\blah。。。它工作得很好,但当Maven捆绑JAR文件时,它会将路径放在相对于根的位置(“\ images\blah”),因此没

  • 我的应用程序的JAR中的目录中有一个TTF字体。 我这样创建我的FOP: 如何在我正在渲染的 PDF 文件中将 配置为嵌入?

  • 在project 从服务器链接(.svg)获取 如何下载该给定url的图标,并使用glide在ImageView中显示它? 现在我用的是这样的: 在哪里有: 还添加了下一个类: SVGDRAWABLE转码器: SvgMoules: SvgSoftwareLayerSetter: 但我也只显示选项<代码>数据。logoUrl不为空,但不显示 UPD: W/Glide:加载失败https://mand

  • 我正试图通过Glide将图像加载到。但是图像没有加载-我得到一个错误。我正在使用以下代码 日志

  • 问题内容: 在我的应用程序中,我以这种方式加载资源: 这给了我: 当我从IDE运行我的应用程序时,但是当我运行应用程序的jar时,这可以很好地工作: 路径变为: 有什么办法解决这个问题? 我将使用“存储库”目录名称来创建此目录: 以相同的方式,我将获得一个文件名(而不是目录),并以这种方式使用它: 问题答案: 听起来你正在尝试使用或类似方法加载资源。不要那样做:不要调用,而是从中调用并读取数据。

  • 我制作了一个简单的applet,它加载了包含在中的图像。我制作的jar文件。该项目有一个名为“kap12”的包和一个名为“U1”的类。我有一个名为“resrc”的文件夹,其中包含我的图像。此文件夹位于根目录中(与kap12文件夹相同)。 这是目录结构: 当我在Eclipse中使用Appletviewer(没有.jar)运行该程序时,它运行得很好。它定位并显示图像。但当我用html运行它时。然后程序