【问题标题】:How to set "org.w3c.css.sac.parser" system property?如何设置“org.w3c.css.sac.parser”系统属性?
【发布时间】:2009-03-19 05:16:04
【问题描述】:

在这个ParserFactory.java

String className = System.getProperty("org.w3c.css.sac.parser");
if (className == null) {
    throw new NullPointerException("No value for sac.parser property");  //line 35
} else {
    return (Parser)(Class.forName(className).newInstance());
}

当我在 Eclipse 中将这个 DemoSAC.java 文件作为 Java 应用程序运行时,我得到了

Exception in thread "main" java.lang.NullPointerException: No value for sac.parser property
at org.w3c.css.sac.helpers.ParserFactory.makeParser(ParserFactory.java:35)

“org.w3c.css.sac.parser”属性到底是什么? Windows下如何设置?我应该把它设置成什么?

谢谢!

【问题讨论】:

    标签: java eclipse parsing sac


    【解决方案1】:

    如果您不想修改代码,也可以在 Eclipse 的 Java 启动配置对话框中设置 Java 属性。您在“参数”选项卡中指定“VM 选项”。要按照 javamonkey79 的建议将该属性设置为“org.w3c.flute.parser.Parser”,您可以指定:

    -Dorg.w3c.css.sac.parser=org.w3c.flute.parser.Parser

    【讨论】:

      【解决方案2】:

      看起来你需要提供一个接口实现。根据此链接here,这是一种方法:

      • 获取长笛解析器here
      • 将其添加到您的构建路径中
      • 将此添加到 DemoSAC 类(在 getProperty 调用之前):

        System.setProperty("org.w3c.css.sac.parser", "org.w3c.flute.parser.Parser");

      我不知道为什么它首先要进行这种基于反射的实例化,也许绕过 ParserFactory 并返回一个新的长笛解析器实例会更干净?

      【讨论】:

        猜你喜欢
        • 2011-07-08
        • 1970-01-01
        • 1970-01-01
        • 2011-11-03
        • 1970-01-01
        • 2014-02-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多