2015-05-11 49 views
1

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

+0

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

回答

2

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

jjs -pc hello.js 

如果你想拥有的.class文件(你想看看/其他工具分析),您可以使用“-d”或“自卸调试目录”指定保存生成的类的目录。例如,

jjs -d=tmp hello.js 

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

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

+0

我认为这会解决我的目的。谢谢。 – Stradm

+0

我认为'-pc'选项已被删除(至少在1.8.0_25-b17中不可用)。 '--print-code'仍然有效。 'jjs -xhelp'得到了一个完整的无证书选项列表。 – RichardTowers

+0

嗯..嗯,-pc仍然存在afaik。刚刚检查jdk1.8.0u60早期访问构建。 –