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 все еще существует. Только что проверил со сборкой раннего доступа jdk1.8.0u60.
- person A. Sundararajan; 28.05.2015