0

我正在开发一个涉及读取和写入 xml 文件的 gradle 项目。我在尝试使用XMLStreamWriter. 该字符串最终需要大约半小时才能写入文件并导致我的应用程序停止响应。当我调用该方法时会出现问题:

writer.writeAttribute(key, escapedXML)

奇怪的是,我已经将 gradle 项目导入了 eclipse 和 intellij;当我在 eclipse 中运行应用程序以及运行使用 gradle 创建的可执行 jar 时,问题就出现了,但是,当我在 intellij 中运行程序时,它很快就完成了,没有任何问题。除了 build.gradle 文件中包含的依赖项之外,我没有包含任何其他 jar 文件。我试图找出两个 IDE 之间的依赖关系或设置的差异,但我找不到任何东西。我还验证了两个 IDE 都使用相同的 JRE。我也尝试过为应用程序分配更多内存来运行 jar,但这没有帮助。我确定我遗漏了一些明显的东西,我非常感谢一些帮助。如果你能告诉我我错过了什么,请告诉我。

更新:花了几天时间研究这个没有运气。我使用 intellij 创建了一个可执行 jar,但问题也存在于此。在 eclipse 和 intellij 中运行时,我还查看了应用程序的类路径。在 intellij 中运行时,该路径包含 jdk1.8.0_121\lib 中的一些 jar 文件,但在 eclipse 中运行时不包含。然后我复制了 intellij 类路径并使用指定的类路径运行 jar。仍然没有运气。我希望我已经提供了足够的细节来激发一些想法。任何建议将不胜感激。

4

1 回答 1

0

我弄清楚了问题的原因。显然,intellij 自动将我的 XMLStreamWriter 的编码设置为 UTF-8,而 eclipse 没有。我改变了这个

 XMLStreamWriter xmlWriter = XMLOutputFactory.newInstance().createXMLStreamWriter(outStream);

对此

XMLStreamWriter xmlWriter = XMLOutputFactory.newInstance().createXMLStreamWriter(outStream, "UTF-8");

我的问题就解决了。

于 2017-06-02T17:25:55.127 回答