我在尝试将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)));
我不确定我在这里做错了什么。任何帮助表示赞赏。
答案 0 :(得分:1)
我认为不兼容性不在于您的应用程序和蜡染之间,而在于蜡染与其所需的库之一,它们不存在或存在于不同的版本中。典型的候选者是xml实用程序库,它们可能与使用它的其他软件一起进入您的环境,例如: XML-apis.jar。另一种陷入困境的可能性是使用Java版本,该版本太旧,因为包含的DOM API类从版本变为版本。