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

我正在使用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运行它。

以上是 Java二进制兼容性问题:sun.font.FontManager类成为接口 的全部内容, 来源链接: utcz.com/qa/417520.html

回到顶部