1

我正在开发使用由 Mathworks JA 构建器创建的 jar 文件的 Java 程序时遇到问题。在这个 Matlab 程序中,它使用 JAK 为 Google Earth 创建一个 KML 文件。我在具有完整 Matlab ide 的开发计算机上没有任何问题。但是,当接管到另一台只有 MCR 的机器时,我收到以下错误:

javax.xml.bind.PropertyException:名称:com.sun.xml.bind.namespacePrefixMapper 值:de.micromata.opengis.kml.V_2_2_0.kml$NameSpaceBeautyfier@15cb235

在 javax.xml.helpers.AbstractMarshallerImpl.setProperty(Unkown Source) 在 com.sun.xml.internal.bind.V2.runtime.MarshallerImpl.setProperty(Unkown Source) 在 de.micromata.opengis.kml.V_2_2_0.kml.createMarshaller (kml.java:642) 在 de.micromata.opengis.kml.V_2_2_0.kml.marshal(kml.java:682)

这是与类路径有关的东西吗?

谢谢你的帮助。

4

2 回答 2

1

您在两个系统上是否有相同版本的 JAXB 库?看起来可能是版本冲突。搜索你的错误我遇到了这个页面:http ://timepassguys.blogspot.com/2011/12/jaxb-exception-javaxxmlbindpropertyexce.html

也许您可以尝试该解决方案?

于 2012-03-05T14:17:31.220 回答
1

您正在使用包含在 JDK ( com.sun.xml.internal.bind) 中的 JAXB 实现,但正在为 Metro JAXB 实现 ( com.sun.xml.bind) 指定属性。请注意,Metro JAXB 在包含在 JDK 中时会进行包重命名。

选项

  1. 您可以使用该com.sun.xml.internal.bind.namespacePrefixMapper物业。
  2. 您可以使用 jaxb.properties 文件来指定 Metro JAXB 实现的使用。

了解更多信息

于 2012-03-05T15:55:40.757 回答