2015-05-11 51 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早期訪問構建。 –