Я получаю эту ошибку «Ожидается кадр карты стека в этом месте». Я использую Java 8. Я знаю, что для Java 7 есть обходной путь для использования -XX:-UseSplitVerifier для использования менее строгого метода проверки. Однако эта опция была удалена в Java 8. Мне было интересно, есть ли для этого какое-либо другое решение. Переход на более раннюю версию Java невозможен.
Ожидание кадра карты стека - Java 8
comment
Я предполагаю, что исправить правильность байт-кода не вариант? В ASM есть возможность исправления кадров.
- person Peter Lawrey   schedule 02.02.2015
Ответы (1)
Параметр -XX:-UseSplitVerifier
был предназначен для того, чтобы дать разработчикам библиотек байт-кода и инструментов время на то, чтобы наверстать упущенное и исправить проблемы с таблицами стека. Разработчики JVM решили удалить эту опцию в самых последних JRE, потому что было достаточно времени для исправления инструментов.
Таким образом, лучшее решение — следовать этому намерению и использовать современный инструмент и его параметры для создания правильных кадров карты стека. Поскольку вы пометили свой вопрос тегом java-bytecode-asm, я предлагаю вам использовать его флаг ClassWriter.COMPUTE_FRAMES
при создании файла класса.
person
Holger
schedule
02.02.2015