What is Retroweaver?

Retroweaver is a tool that enables you to take advantage of the new Java 1.5 language features in your source code, while still retaining compatability with 1.4 (and older) virtual machines. Retroweaver operates by transforming Java class files compiled by a 1.5 compiler into class files which can be run on an older virtual machine.


What platforms does the Retroweaver run on?

Any platform Java runs on.


Where can I get Retroweaver?

Retroweaver can be downloaded at http://sourceforge.net/project/showfiles.php?group_id=104240


How much does Retroweaver cost?

Retroweaver is a free, open-source product. The license for use is BSD-derived. See the license here


Who can I ask questions of or give comments or feedback to?

Tools for the Retroweaver user community are hosted at SourceForge. If you go there you can browse through or post to the forums, join the mailing list, or even submit bugs or feature requests. On the other hand, you can just chat with the architect and primary author of Retroweaver, Toby Reyelts, directly.


pack200 issues with retroweaver custom attribute

When a weaved jar is compressed using Java 6's pack200, Java 5's unpack200 is not able to unpack the archive due to the custom attributes inserted during the weaving. To solve this issue, you can use either one of these options:

  • use Java 5's pack200 to compress the jar archive
  • use the retroweaver "-stripAttributes" option during the weaving
  • use the pack200 "-Ustrip" or "--class-attribute=net.sourceforge.Retroweaver=strip" options when uncompressing the archive
  • if you're using the pack200 ant task, specify "pack.class.attribute.net.sourceforge.Retroweaver=strip"