代码之家  ›  专栏  ›  技术社区  ›  Henry

如何设置“org.w3c.css.sac.parser”系统属性?

  •  2
  • Henry  · 技术社区  · 16 年前

    在这 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());
    }
    

    当我运行这个 DemoSAC.java 在Eclipse中作为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”属性到底是什么?我如何在窗口下设置它?我应该把它设置为什么?

    谢谢!

    2 回复  |  直到 16 年前
        1
  •  2
  •   Roy Paterson    16 年前

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

    -dorg.w3C.css.sac.parser=org.w3C.Flute.Parser.Parser.

        2
  •  1
  •   javamonkey79    16 年前

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

    • 获取长笛分析器 here
    • 将其添加到构建路径
    • 将此添加到demosac类(在getproperty调用之前):

      system.setproperty(“org.w3c.css.sac.parser”, “org.w3c.love.parser.parser”);

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