首页 > 解决方案 > 如何设置 Javax.xml.transform.TransformerFactory 系统属性

问题描述

我正在使用 javax.xml.transform.Transform 将 xml 文件转换为 PDF。这本身就可以正常工作,但是该项目的某些部分正在使用 Xalan,它实现了自己的 TransformerFactory,并且其中的某些内容不适用于 Cyrillic。

我在https://xml.apache.org/xalan-j/usagepatterns.html发现有一个属性用于定义使用的工厂:

TransformerFactory 是一个具有静态 newInstance() 方法的抽象类,该方法实例化由 javax.xml.transform.TransformerFactory 系统属性指定的具体子类。

此系统属性的默认设置是 org.apache.xalan.processor.TransformerFactoryImpl。

我的问题是:如何将此属性设置为不使用 Xalan?

标签: javaxslt-1.0xsl-foxalan

解决方案


-D当您执行程序时,使用以下标志从命令行静态设置它:

java -Dorg.apache.xalan.processor.TransformerFactoryImpl=com.xyz.YourFactory YourApp

或者在您的应用程序中动态地使用System.setProperty()

System.setProperty("org.apache.xalan.processor.TransformerFactoryImpl",
        "com.xyz.YourFactory");

请注意,您需要使用工厂类的完全限定类名,并且工厂需要位于您的类路径中才能使其中任何一个工作。


推荐阅读