2016-07-21 3 views
4

Я динамически загружаю и запускаю JavaScript-код, который хранится на диске в файле YAML. Я хотел бы знать, возможно ли (с помощью intelliJ) отлаживать код JS, даже если я не загружаю его из автономного JS-файла. Для упрощения описания проблемы, рассмотрим следующий Java-код:Отладка динамически загруженного кода JavaScript с помощью IntelliJ и механизма Nashorn

NashornScriptEngineFactory nashornFactory = new NashornScriptEngineFactory(); 
ScriptEngine engine = nashornFactory.getScriptEngine(); 
engine.eval("var a = 1 + 1;\nprint(a);"); 

Как установить контрольную точку на линии два («печать» функция вызова) и как проверить значение переменной «а»? Если это невозможно, что будет лучшим обходным решением?

ответ

2

Основываясь на этом сообщении в блоге https://blogs.oracle.com/sundararajan/remote-debugging-of-nashorn-scripts-with-netbeans-ide-using-debugger-statements, вы можете просто подключить удаленный отладчик java для обработки.

Вы можете сделать это в IntelliJ IDEA, создав новую конфигурацию удаленного запуска.

После установки, используйте команду JavaScript:

debugger; 

Это заставит отладчик сломаться, если он прикреплен. Затем вы можете проверить значения переменных в окне переменных.

Если вы не можете подключить IntelliJ, откройте инспектор/отладчик браузеров, и эта же строка javascript заставит отладчик браузера сломаться по этой строке.

+1

upvoted, но я подумал немного дольше ... Как вы подключаетесь к NashornScriptEngine? Делает ли IntelliJ это? –

 Смежные вопросы

  • Нет связанных вопросов^_^