我看到最新的Netbeans 8.0 beta提供了一种调试“在Nashorn中执行的JavaScript代码”的方法(请参见附件)
采取什么措施才能看到这一效果?
[更新]我只能通过打开文件(在任何项目外部),在文件内部单击,右键单击,然后选择“运行文件”选项来运行简单的JavaScript文件。
我需要提及的是,快捷键“ Shift-F6”对我不起作用。
因此,如果其他人知道运行此方法的其他方法,请发布您的解决方案。
[UPDATE 2] A new article on JavaScript Nashorn mention about JavaScript debug in Netbeans
[UPDATE 3] It seems that Nashhorn will be deprecated inside JDK. See JEP 335: Deprecate the Nashorn JavaScript Engine
You need to either run IDE on JDK8 or have JDK8 added as Platform via Tools|Java Platforms. The create a new Java project. Once it is created, make sure it uses JDK8 platform:
Next you can:
or you can start JavaScript code from Java code, e.g.:
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);
}
或者您可以使用以下代码以Java代码加载JS文件:
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。
因此,如果您具有file.js
JavaScript文件,则可以在IDE中打开它,添加行断点,然后使用上面的第二个代码段加载文件时,调试器将在行断点处停止。
更新:示例项目在这里。检查一下,它包含在Nashorn中调试和运行JS的所有(对我而言)已知方法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句