【问题标题】:Debug dynamically loaded JavaScript code with IntelliJ and the Nashorn engine使用 IntelliJ 和 Nashorn 引擎调试动态加载的 JavaScript 代码
【发布时间】:2016-11-25 13:43:32
【问题描述】:

我正在动态加载和运行存储在磁盘上的 YAML 文件中的 JavaScript 代码。我想知道是否可以(使用 intelliJ)调试 JS 代码,即使我没有从独立的 JS 文件加载它。为简化问题描述,请考虑以下 Java 代码:

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

如何在第二行设置断点(“打印”函数调用)以及如何检查变量“a”的值?如果这不可能,最好的解决方法是什么?

【问题讨论】:

    标签: javascript java intellij-idea nashorn


    【解决方案1】:

    根据这篇博文https://blogs.oracle.com/sundararajan/remote-debugging-of-nashorn-scripts-with-netbeans-ide-using-debugger-statements,您可以只附加一个远程java调试器来处理。

    您可以在 IntelliJ IDEA 中通过创建新的远程运行配置来执行此操作。

    附加后,使用JavaScript命令:

    debugger;
    

    如果已附加,这将强制调试器中断。然后,您可以在变量窗口中检查变量的值。

    如果您无法连接 IntelliJ,请打开浏览器检查器/调试器,同一行 javascript 将导致浏览器的调试器在该行中断。

    【讨论】:

    • 赞成,但我想了一会儿......你如何连接到 NashornScriptEngine? IntelliJ 能做到吗?
    猜你喜欢
    • 1970-01-01
    • 2018-06-13
    • 1970-01-01
    • 1970-01-01
    • 2015-03-03
    • 1970-01-01
    • 2019-01-22
    • 1970-01-01
    • 2023-04-06
    相关资源
    最近更新 更多