1

我在尝试将 svg 文档加载到 JSVG 面板时看到以下错误。

Exception occurred in target VM: (class: org/apache/batik/bridge/BridgeContext, method: dispose signature: ()V) Incompatible object argument for function call 
java.lang.VerifyError: (class: org/apache/batik/bridge/BridgeContext, method: dispose signature: ()V) Incompatible object argument for function call
    at org.apache.batik.swing.svg.JSVGComponent.createBridgeContext(Unknown Source)
    at org.apache.batik.swing.svg.JSVGComponent.installSVGDocument(Unknown Source)
    at org.apache.batik.swing.JSVGCanvas.installSVGDocument(Unknown Source)
    at org.apache.batik.swing.svg.JSVGComponent$2.run(Unknown Source)
    at org.apache.batik.swing.svg.JSVGComponent.stopThenRun(Unknown Source)
    at org.apache.batik.swing.svg.JSVGComponent.setSVGDocument(Unknown Source)
    at org.netbeans.modules.plantumlnb.SVGImagePreviewPanel.renderSVGFile(SVGImagePreviewPanel.java:48)
    at org.netbeans.modules.plantumlnb.RenderImageThread$1.run(RenderImageThread.java:56)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733)
    at java.awt.EventQueue.access$200(EventQueue.java:103)
    at java.awt.EventQueue$3.run(EventQueue.java:694)
    at java.awt.EventQueue$3.run(EventQueue.java:692)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:703)
    at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:159)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)

这是相关的代码。

canvas.setSVGDocument(createSVGDocument(new StringReader(imageContent)));

我不确定我在这里做错了什么。任何帮助表示赞赏。

4

1 回答 1

3

我认为不兼容不在于您的应用程序和蜡染布之间,而是在蜡染布与其所需的库之一之间,该库要么不存在,要么存在于不同的版本中。典型的候选者是 xml 实用程序库,它们可能与使用它的其他软件一起进入您的环境,例如 xml-apis.jar。遇到麻烦的另一种可能性是使用太旧的 Java 版本,因为包含的 DOM API 类会随着版本的变化而变化。

于 2013-08-29T09:48:56.813 回答