访问 Nashorn 生成的字节码

Accessing Nashorn generated bytecode

Nashorn 将 javascript 源代码直接翻译到内存中。是 有什么方法可以仅出于阅读目的访问字节码? (不需要操作)。如果有,请详细说明,因为我经验有限... 我知道 javap 但它只显示 Java 特定的字节码。我想看看 Nashorn 翻译的 javascript 字节码。

您可以使用 Nashorn 命令行选项“-pc”或“--print-code”。 Nashorn 将以类似 javap 的格式打印生成的字节码。例如:

jjs -pc hello.js

如果你想要 .class 文件(你想 look/analyze 通过其他工具),你可以使用“-d”或“--dump-debug-dir " 指定保存生成的 classes 的目录。例如,

jjs -d=tmp hello.js

会在"tmp"目录下生成.class个文件。请在您指定的目录下寻找"jdk/nashorn/internal/script"目录。

请注意,您将无法在以后的 nashorn 会话中离线操作和重新加载这些 classes。这只是一个调试工具。