如何设置Javax.xml.transform.TransformerFactory系统属性

时间:2018-12-05 10:16:30

标签: java xslt-1.0 xsl-fo xalan

我正在使用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?

2 个答案:

答案 0 :(得分:1)

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

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

或使用System.setProperty()从应用程序内部动态进行:

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

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

答案 1 :(得分:0)

尝试将其设置为Java参数-Djavax.xml.transform.TransformerFactory=<factory class>

您也可以直接在程序中以TransformerFactory tf = new SomeTransformerFactoryImpl();的形式初始化所需的工厂

相关问题