В комментарии к вашему предыдущему вопросу вы упомянули http://www.gallot.be/?p=85,, в котором используется javaagent. Должно быть относительно легко изменить этот код для запуска того же преобразования на этапе предварительной обработки. Вам нужно извлечь CodeLocationClassAdapter
в его собственный класс верхнего уровня и вызвать его так для каждого из ваших файлов классов:
String name = "com/stackoverflow/Test.class";
byte[] bytes = // read bytes of the classfile from disk
ClassReader cr = new ClassReader(bytes);
ClassWriter cw = new ClassWriter(cr, 0);
ClassVisitor cv = new CodeLocationClassAdapter(cw);
cr.accept(cv, 0);
// write modified class file
OutputStream out = new FileOutputStream(name);
out.write(cw.toByteArray());
out.close();