Java 二进制兼容性问题:sun.font.FontManager 类变成接口

2023-11-27

我正在使用Lobo - Java Web 浏览器库,它给了我一个例外,经过一些研究,我确定可能是由于该库是针对旧版本的 Java 进行编译的。

代码如下:

import java.io.IOException;
import org.lobobrowser.html.UserAgentContext;
import org.lobobrowser.html.parser.DocumentBuilderImpl;
import org.lobobrowser.html.parser.InputSourceImpl;
import org.lobobrowser.html.test.SimpleUserAgentContext;
import org.xml.sax.SAXException;

public class Cobratest
{
    public static void main(String[] args) throws SAXException, IOException
    {
        UserAgentContext uAgent = new SimpleUserAgentContext();
        DocumentBuilderImpl docBuild = new DocumentBuilderImpl(uAgent);
        docBuild.parse(new InputSourceImpl("http://dic.amdz.com/"));
    }
}

堆栈跟踪是:

 Exception in thread "main" java.lang.IncompatibleClassChangeError: Found interface sun.font.FontManager, but class was expected
    at org.lobobrowser.util.gui.FontFactory.createFont(FontFactory.java:210)
    at org.lobobrowser.util.gui.FontFactory.createFont_Impl(FontFactory.java:180)
    at org.lobobrowser.util.gui.FontFactory.createFont(FontFactory.java:127)
    at org.lobobrowser.util.gui.FontFactory.getFont(FontFactory.java:98)
    at org.lobobrowser.html.style.StyleSheetRenderState.<clinit>(StyleSheetRenderState.java:43)
    at org.lobobrowser.html.domimpl.NodeImpl.<clinit>(NodeImpl.java:39)
    at org.lobobrowser.html.parser.DocumentBuilderImpl.createDocument(DocumentBuilderImpl.java:143)
    at org.lobobrowser.html.parser.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:97)

当我检查时org.lobobrowser.util.gui.FontFactory.createFont我发现有一个接口叫FontManager这与之前的 Java 版本有所不同。在这个FontFactory类,他们使用了该接口的类,但该类不再可用。我该如何解决这个问题?

界面FontManager:

package sun.font;

import java.awt.Font;
import java.awt.FontFormatException;
import java.io.File;

public interface FontManager {

    public static final int NO_FALLBACK = 0;
    public static final int PHYSICAL_FALLBACK = 1;
    public static final int LOGICAL_FALLBACK = 2;

    public boolean registerFont(Font font);

    public void deRegisterBadFont(Font2D font2d);

    public Font2D findFont2D(String string, int i, int i1);

    public Font2D createFont2D(File file, int i, boolean bln, CreatedFontTracker cft) throws FontFormatException;

    public boolean usingPerAppContextComposites();

    public Font2DHandle getNewComposite(String string, int i, Font2DHandle fdh);

    public void preferLocaleFonts();

    public void preferProportionalFonts();
}

以及库中使用的不可用的类:

   return FontManager.getCompositeFontUIResource(new Font(name, style, size));

我认为“sun.font.FontManager”已被 Java7 删除,因此如果您必须使用它(我建议不要使用它并寻找另一个包),您可以尝试使用 java6 运行它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java 二进制兼容性问题:sun.font.FontManager 类变成接口 的相关文章

  • 策略模式还是命令模式?

    假设我有一个金融交易列表 我需要针对这些交易执行一系列验证规则 一个例子是我有一笔购买产品的交易 但是首先我需要验证交易中的帐户是否有足够的可用资金 产品没有售完等 由于这些规则 交易将是标记为拒绝 并应指定错误代码 当然 我正在考虑用一个
  • 将构造函数作为参数传递给方法

    我是java新手 开始研究构造函数 我看到一些构造函数作为参数传递给方法的示例 请告诉我当构造函数作为参数传递给方法时会发生什么 或者建议我一些链接 我可以在其中获得有关使用构造函数的足够知识 根据您需要传递构造函数的目的 您可以考虑传递供
  • 在 Java 中使用 Batik 检查和删除 SVG 中的属性

    这个问题基本上说明了一切 如何检查 SVG 是否具有 viewBox 属性 我正在使用蜡染库 我需要这个 因为我需要 至少 通知用户有一个 viewBox 属性 我可以删除它吗 使用 org w3c dom 类 您可以按照以下方式做一些事情
  • 使类只能从特定类实例化

    假设我有 3 节课class1 class2 and class3 我怎样才能拥有它class1只能通过实例化class2 class1 object new class1 但不是 class3 或任何其他类 我认为它应该与修饰符一起使用
  • 重写 getPreferredSize() 会破坏 LSP

    我总是在这个压倒一切的网站上看到建议getPreferredSize 而不是使用setPreferredSize 例如 如前面的线程所示 对于固定大小的组件 使用重写 getPreferredSize 而不是使用 setPreferredS
  • Java 卡布局。多张卡中的一个组件

    一个组件 例如JLabel 在多张卡中使用CardLayout 目前看来该组件仅出现在它添加到的最后一张卡上 如果有办法做到这一点 我应该吗 这是不好的做法吗 或者有其他选择吗 你是对的 它只出现在 添加到的最后一张卡 中 但这与CardL
  • 无法访问“不安全”java方法的java表达式语言

    我正在开发一个项目 让用户向服务器提交小 脚本 然后我将执行这些脚本 有很多脚本语言可以嵌入到Java程序中 例如mvel ognl uel clojure rhino javascript等 但是 据我所知 它们都允许脚本编写者调用Jav
  • 在java中将字符串日期转换为美国格式

    我有下面的代码 其中日期为字符串类型 我必须将其设置为美国格式 所以下面我已经展示了它 private static final SimpleDateFormat usOutputDate new SimpleDateFormat MM d
  • 如何在 HandlerInterceptorAdapter 中添加 HttpServletRequest 标头?

    我正在尝试将授权标头添加到我的请求中 作为我们切换环境时的临时解决方法 我试图在扩展 HandlerInterceptorAdapter 的拦截器中处理它 我使用 MutableHttpServletRequest 类制作here http
  • 无法从资源加载图片

    So I am trying to load a image file from a resource so that when I export my application into a jar file it could be use
  • 无法在 Java 中输出正确的哈希值。怎么了?

    在我的 Android 应用程序中 我有一个 SHA256 哈希值 我必须使用 RIPEMD160 消息摘要算法进一步对其进行哈希值 我可以输出任何字符串的正确 sha256 和ripemd160 哈希值 但是当我尝试使用ripemd160
  • 对象的引用计数

    在我的代码中 我使用一个小的数据存储类 它是在不同的地方创建的 为了避免内存泄漏并简化事情 我想使用引用计数 所以我这样做了 type TFileInfo class TInterfacedObject IInterface 并删除了我对
  • JUNIT 测试 void 方法

    我有一个充满 void 方法的 java 类 我想进行一些单元测试以获得最大的代码覆盖率 例如我有这个方法 protected static void checkifValidElements int arg1 int arg2 metho
  • 如何从字符串中解析一个大整数? [复制]

    这个问题在这里已经有答案了 我有一个这样的方法 Integer parseInt myInt 不是这个整数变得很长 我得到以下异常 java lang NumberFormatException For input string 40001
  • 如何从intellij项目视图中隐藏不必要的文件?

    给定一个示例 gradle 项目 其项目结构如下所示 正如你所看到的 有很多东西你实际上不需要在想法中看到 但你需要它们存在 我知道下面被忽略的文件 文件夹类型Editor File Types但这些正在影响库和项目 idea 会在各处忽略
  • Java 中 JButton 的击键/热键

    最初我使用 JMenu 并建立热键以使用加速器工作 它运行得很好 现在我想在 JButton 中实现相同的行为 但我陷入困境 这是我编写的代码 请分享您的想法 以便我可以走上正确的道路 import javax swing import j
  • 如何使用Gson仅从Json反序列化某些特定字段?

    我有以下 JSON 字符串 channel bvmt initValues data value instrumentIds TN0007250012 TN0007500010 instruments mnemonic ADWYA marc
  • Axis2 错误:要输出的文本中的空白字符 (0x4) 无效

    我创建了一个 Java 客户端 使用 Axis2 1 7 6 作为代码生成器与 SOAP Web 服务进行交互 问题在于客户端的某些输入抛出异常并显示以下消息 org apache axis2 AxisFault Invalid white
  • 受信任的 1.5 小程序可以执行系统命令吗?

    如果是的话 这个能力有什么限制吗 具体来说 我需要以 Mac OSX 为目标 我以前用过这个在 Windows 系统上启动东西 但从未在 Mac 上尝试过 public void launchScript String args Strin
  • 决策树和规则引擎 (Drools)

    In the application that I m working on right now I need to periodically check eligibility of tens of thousands of object

随机推荐

  • Ant:如何从命令行传入的逗号分隔列表中设置属性?

    我正在使用 Ant 1 8 1 如果我在命令行上传递一个参数 DenableProperties abc def ghi jkl 如何在 Ant 脚本中设置各个属性 true false
  • web.configallowDefinition=MachineToApplication 错误

    在根目录下我有以下结构 web config Report Folder Login aspx Web config gt ViewReport gt Report aspx 在 Report 文件夹中的 web config 文件中 我有
  • Django - 如何防止数据库外键约束创建

    我有一个由数据库视图支持的模型 class OrgCode models Model org code models CharField db column u code max length 15 org description mode
  • JNA UnsatisfiedLinkError - 当我将 java.library.path 设置为虚假值时起作用

    在 Linux 上使用 JNA 4 0 0 我尝试加载本机库 libmean so 这是在lib子目录 该库只是一个计算两个数字平均值的简单示例 我运行以下代码 在 Eclipse 中 Djna library path lib在运行配置中
  • 未记录的 CONVERT 样式 - 日期时间 23

    最近我偶然发现CONVERT函数样式 23 这非常方便 因为它为您提供 DATE 格式yyyy mm dd 问题是msdn中没有记录 在 CONVERT 上 F1 后来自 SSMS 帮助的链接 http msdn microsoft com
  • c# 以编程方式从 Exchange 服务器读取电子邮件

    当您在网络上搜索时 您会找到 如何以编程方式阅读电子邮件 的非常简单的答案 所有网站都解释了大部分与此页面相同的内容 http omegacoder com p 454 depends from Exchange server versio
  • UIFileSharingEnabled 仅在调试变体上

    我正在寻找一种方法来仅为调试变体启用 UIFileSharingEnabled 标志 这样我就可以更改文档文件夹的内容 但我不希望最终用户做同样的事情 我想我可以使用运行脚本来执行此操作 但不确定如何获取脚本的活动配置名称 解决了 if C
  • 异步的替代方案: false ajax

    我循环遍历一个数组 为每个数组运行 ajax 请求 我需要请求按顺序发生 这样我就可以接收最后一个请求并在成功时运行一个函数 目前我正在运行 简化 each array function i item ajax request item i
  • 中 ANYSIZE_ARRAY 的用途是什么?

    目的是什么ANYSIZE ARRAY 位于WinNT h 我在 2004 年看到一篇关于它的 MSDN 博客文章 但它对我来说没有意义 我假设你正在谈论这篇博文 当可变大小 编译时未知 数组是结构的一部分时 通常使用它 typedef st
  • SQL 视图上的 LINQ select 得到错误答案

    我有一个 SQL 视图 它生成 8 列的响应 它相当复杂 所以我不会在这里列出它 它不会对我试图理解的问题增加太多内容 当我直接使用此查询在 SQL Manager 中查询视图时 SELECT FROM GPPS dbo PartIndex
  • 如何将 R 对象的定义导出为纯文本以便其他人可以重新创建它?

    假设您在 R 中有这些数据 并且您想在 stackoverflow 上发布问题 为了让其他人能够最好地帮助您 如果他们能够拥有您的对象 数据框 矢量等 的副本来使用 那就太好了 假设您的数据位于名为 site data 的数据框中 gt s
  • 了解 Java 泛型中的通配符

    我不确定为什么以下代码中的最后一条语句是非法的 Integer应该是一个子类型 那么为什么我不能将它分配给b List
  • 在 matlab 中绘制一堆 3d 线的最有效方法

    我需要在 matlab 中绘制 3d 线列表 最快的方法是什么 我目前正在做类似的事情 edges is a MX2 matrix holding the list of edges points are the vertices coor
  • 在php/mysql中导入带有图像的excel文件

    我想制作一个导入脚本 允许用户将他们的 excel 文件 扩展名不重要 上传到我的 php 应用程序 应用程序应该识别一个项目列表 到目前为止一切顺利 这种情况下的困难在于 Excel 文件包含图像 我已阅读有关 phpexcel 库的信息
  • 使用 HTML5 将 1000 条记录插入 sqlite 时如何加快处理速度

    我是 HTML5 应用程序开发新手 在此 我想使用 HTML5 将 1000 条记录插入到 sqlite 数据库中 这个过程非常缓慢 如何在插入记录之前使用 BEGIN COMMIT 这样可以加快插入速度 请任何人指导我 提前致谢 请在ch
  • 反编译 APK 并在您的应用程序中使用其部分代码是否合法

    反编译 apk 并使用其部分代码是否合法 更具体地说 一个 URL 连接器 我还没学过 应用程序的其余部分 布局等 是我制作的 我可以发布此应用程序而不用担心法律问题吗 不管骗子说什么 反编译绝对合法 最多 您可能会因与软件相关的未经授权的
  • MySQL 是否有与 PHP 的 preg_replace 等效的工具?

    我有一个匹配 MySQL 中的字段 我认为我可以使用正则表达式 但 MySQL 似乎没有完成这项工作所需的功能 这是场景 我在 PHP 中有一个名为 url 的变量 假设此变量设置为字符串 article my article page 2
  • 最大化并行请求数 (aiohttp)

    tl dr 如何最大化可以并行发送的 http 请求数量 我正在从多个网址获取数据aiohttp图书馆 我正在测试它的性能 我发现在这个过程中的某个地方存在瓶颈 一次运行更多的网址并没有帮助 我正在使用这段代码 import asyncio
  • KineticJS 中的缩放和平移

    有没有一种方法可以使用 KineticJS 在画布上进行缩放和平移 我找到了这个图书馆Kineticjs视口 但只是想知道是否有其他方法可以实现这一目标 因为这个库似乎使用了很多额外的库 并且不确定哪些库是完成工作所绝对必需的 或者 我什至
  • Java 二进制兼容性问题:sun.font.FontManager 类变成接口

    我正在使用Lobo Java Web 浏览器库 它给了我一个例外 经过一些研究 我确定可能是由于该库是针对旧版本的 Java 进行编译的 代码如下 import java io IOException import org lobobrow