Как установить системное свойство "org.w3c.css.sac.parser"? - PullRequest
2 голосов
/ 19 марта 2009

В этом 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 как приложение Java в Eclipse, я получаю

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 ]

2 голосов
/ 20 марта 2009

Если вы не хотите изменять код, вы также можете установить свойство Java в диалоговом окне конфигурации запуска Eclipse. Вы указываете «VM option» на вкладке «Аргументы». Чтобы установить для свойства "org.w3c.flute.parser.Parser", как предложено javamonkey79, вы должны указать:

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

1 голос
/ 19 марта 2009

Похоже, вам нужно предоставить реализацию интерфейса. По этой ссылке здесь , это один из способов сделать это:

  • получить анализатор флейты здесь
  • добавьте его в путь сборки
  • добавьте это в класс DemoSAC (до вызова getProperty):

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

Я не знаю, почему он делает это основанное на отражении создание с нуля, возможно, минуя ParserFactory и возвращая новый экземпляр анализатора флейты, было бы чище вообще?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...