【问题标题】:Accessing Nashorn generated bytecode访问 Nashorn 生成的字节码
【发布时间】:2015-05-11 15:44:50
【问题描述】:

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

【问题讨论】:

  • 您是否尝试过查看 Nashorn 的文档和源代码?

标签: java javascript bytecode intercept nashorn


【解决方案1】:

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

jjs -pc hello.js

如果你想拥有 .class 文件(你想通过其他工具查看/分析),你可以使用“-d”或“--dump-debug-dir”来指定生成类的目录被保存。例如,

jjs -d=tmp hello.js

将在“tmp”目录下生成.class 文件。请在您指定的目录下查找“jdk/nashorn/internal/script”目录。

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

【讨论】:

  • 我认为速记 -pc 选项已被删除(至少在 1.8.0_25-b17 中不可用)。 --print-code 仍然有效。 jjs -xhelp 获取未记录选项的完整列表。
  • hmm.. 好吧,-pc 仍然存在 afaik。刚刚检查了 jdk1.8.0u60 早期访问版本。
猜你喜欢
  • 1970-01-01
  • 2023-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多