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

时间:2009-03-19 05:16:05

标签: java eclipse parsing sac

在此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 Application时,我得到了

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下设置它?我应该将它设置为什么?

谢谢!

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

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

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

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

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

相关问题