Nashorn превежда изходния код на javascript директно в паметта. Има ли някакъв начин за достъп до байт кода само за четене? (не е необходима манипулация). Ако има, любезно обяснете подробно, тъй като имам ограничен опит... Наясно съм с javap, но той показва само специфичен за Java байт код. Искам да разгледам преведения от Nashorn байт код на JavaScript.
Достъп до байт код, генериран от Nashorn
comment
Опитахте ли да разгледате документацията и изходния код за Nashorn?
- person Antimony   schedule 12.05.2015
Отговори (1)
Можете да използвате опцията на командния ред на Nashorn "-pc" или "--print-code". Nashorn ще отпечата генерирания байткод във формат, подобен на javap. Например:
jjs -pc hello.js
Ако искате да имате .class файлове (които бихте искали да търсите/анализирате с други инструменти), можете да използвате "-d" или "--dump-debug-dir", за да посочите директория, където се записват генерираните класове. Например,
jjs -d=tmp hello.js
ще генерира .class файлове в директория "tmp". Моля, потърсете директория "jdk/nashorn/internal/script" в указаната от вас директория.
Имайте предвид, че няма да можете офлайн да манипулирате и презареждате тези класове в по-късна nashorn сесия. Това е само средство за отстраняване на грешки.
person
A. Sundararajan
schedule
15.05.2015
Мисля, че опцията за стенограма
-pc
е премахната (не е налична поне в 1.8.0_25-b17
). --print-code
все още работи. jjs -xhelp
получава пълен списък на недокументираните опции.
- person RichardTowers; 26.05.2015
хм.. Е, -pc все още съществува afaik. Току-що проверено с компилация за ранен достъп jdk1.8.0u60.
- person A. Sundararajan; 28.05.2015