Warning: The content of this article may be out of date.
A few changes can be made to reduce the footprint of Rhino for embeddings where space is at a premium. On a recent build, the length of <cite>js.jar</cite> was 603,127 bytes corresponding to 1,171,708 bytes of all uncompressed Rhino classes with debug information included. With various changes <cite>js.jar</cite> size can be reduced to 204,689 bytes corresponding to 424,774 bytes of uncompressed classes.
Class generation library
If you do not include
JavaAdapter, nor do you use
PolicySecurityController then you do not need Rhino library for class file generation and you can remove all the classes from in <cite>org.mozilla.classfile</cite> package.
Debug information in Rhino classes consumes about 25% of code size and if you can live without that, you can recompile Rhino to remove it.
Ant build script in Rhino supports smalljar target that will generate <cite>smalljs.jar</cite> that does not include
JavaAdapter and class generation library, eegular expressions, E4X implementation and deprecated files. To build such minimalist jar without debug information, run the following command from the top directory of Rhino distribution:
ant -Ddebug=off -Dno-regexp=true -Dno-e4x=true smalljar
If you omit
-Dno-regexp=true, then the resulting <cite>smalljs.jar</cite> will include regular expression support. Similarly omitting
-Dno-e4x=true results in <cite>smalljs.jar</cite> that includes runtime support for E4X.