Я видел, что последняя бета-версия Netbeans 8.0 предлагает способ отладки "кода JavaScript, выполняемого в Nashorn" (см. Прикрепленный файл)
Какие шаги, чтобы увидеть это в действии?
[ОБНОВЛЕНИЕ] Я смог запустить простой файл JavaScript, только открыв его (вне любого проекта), щелкнув внутри файла, щелкнув правой кнопкой мыши и выбрав опцию "Выполнить файл".
Я должен отметить, что ярлык "Shift-F6" не работал для меня.
Так что, если кто-то еще знает о другом способе запуска, пожалуйста, опубликуйте свое решение.
[ОБНОВЛЕНИЕ 2] Новая статья о JavaScript Nashorn упоминает об отладке JavaScript в Netbeans
[ОБНОВЛЕНИЕ 3] Кажется, что Nashhorn будет объявлен устаревшим внутри JDK. См. JEP 335: Устаревший Nashorn JavaScript Engine
Вам нужно либо запустить IDE на JDK8, либо добавить JDK8 в качестве платформы с помощью инструментов | Java Platforms. Создайте новый проект Java. После его создания убедитесь, что он использует платформу JDK8:
Затем вы можете:
или вы можете запустить код JavaScript из кода Java, например:
try {
ScriptEngineManager factory = new ScriptEngineManager();
ScriptEngine engine = factory.getEngineByName("nashorn");
engine.eval("function hi(){\nvar a = 'PROSPER'.toLowerCase(); \nmiddle(); \nprint('Live long and' + a)}\n function middle(){\n var b = 1; for(var i=0, max = 5; i<max;i++){\nb++;\n}\n print('b is '+b);}hi();");
} catch (ScriptException ex) {
Logger.getLogger(SampleRunner.class.getName()).log(Level.SEVERE, null, ex);
}
или вы можете загрузить JS файл в Java-код, используя:
try {
ScriptEngineManager factory = new ScriptEngineManager();
ScriptEngine engine = factory.getEngineByName("nashorn");
engine.eval("load(\"" + "src/packageName/file.js" + "\");");
} catch (Exception ex) {
Logger.getLogger(SampleRunner.class.getName()).log(Level.SEVERE, null, ex);
}
Используя это, если вы запускаете/отлаживаете Java-проект как таковой, вы можете добавить точки останова/часы в код JavaScript, а также в код Java, как обычно, и когда код JS будет выполнен, отладчик остановится на правильных строках, независимо от того, если они принадлежат JS или Java.
Итак, если у вас есть файл JavaScript file.js
, вы можете открыть его в среде IDE, добавить точку останова и когда файл будет загружен с использованием второго фрагмента выше, отладчик остановится на контрольной точке линии.
UPDATE: пример проекта здесь. Проверьте это, он содержит все известные (мне) способы отладки и запуска JS в Нашноре.
debugger;
заявления в javascript? если да, то что еще нужно сделать? Я скачал и запустил как есть, и он не работает при запуске в IDE.