访问 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。这只是一个调试工具。
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。这只是一个调试工具。