Этот вопрос сейчас немного старше, но, поскольку я нигде не нашел ответа на этот вопрос в stackoverflow, позвольте мне записать его:
Это стандартная комбинация jasper / jasmin , которую я успешно использовал в прошлом:
- яшма для разборки в формате, совместимом с жасмином
- jasmin , который пересобирает вывод яшмы
Единственное неудобство, связанное с jasper, заключается в том, что он забывает создать метку для предложения switch по умолчанию, а затем jasmin выдаст вам ошибки, подобные
Main.j: 391: Метка ошибки JAS: LABEL0x48 не был добавлен в код.
Что означает, что вам нужно зайти в файл .j и исправить его вручную. "Javap-C" может помочь вам там. Для этой ошибки я бы предложил вам jasper и сразу jasmin перед любыми изменениями, просто чтобы убедиться, что это работает.
На самом деле вы можете исправить эту ошибку, применив этот патч к jasper:
--- Code_Collection.java.orig 1999-06-14 14:10:44.000000000 +0000
+++ Code_Collection.java 2011-02-05 07:23:21.000000000 +0000
@@ -1210,6 +1210,7 @@
-----------------------------------------------------------------------*/
void getLabel(Code_Collection code) {
for (int i = 0; i < count; i++) code.setLabel(pc+branch[i]);
+ code.setLabel(pc+tableDefault);
}
/*-----------------------------------------------------------------------
Я отправил его автору, но у меня сложилось впечатление, что проект не разрабатывался много лет, поэтому я не знаю, будет ли он объединен.
Редактировать: Джаспер с примененным выше патчем теперь доступен на https://github.com/EugenDueck/Jasper
И еще есть Схема байт-кода Eclipse , как описано в этом ответе:
редактор байт-кода Java?