Rhino is an open-source implementation of JavaScript written entirely in Java
C++ Java JavaScript C Perl Shell Other
Latest commit d0c77c0 Oct 25, 2016 Gregory Brail Add Travis support.
Failed to load latest commit information.
examples Replace StringBuffer with StringBuilder if possible Feb 9, 2015
gradle/wrapper Add "distZip" gradle task. Sep 1, 2015
man Add manpage for Rhino shell. Feb 13, 2015
maven Update release code. Feb 1, 2016
src Check before getting "toJSON" property because some built-in objects… Sep 19, 2016
test262 @ acf2d0c Update test262 to latest code from master. Sep 8, 2015
testsrc Added stringify-e4x-replacer.jstest and stringify-jarray-replacer.jstest Oct 4, 2016
toolsrc Merge SourceReader changes. Jun 26, 2015
xmlimplsrc Remove code and build artifacts pointing to the "old E4X" implementat… Feb 24, 2015
.gitattributes Add .gitattributes. May 18, 2015
.gitignore Fixing PR Jun 23, 2015
.gitmodules Lightweight test262 runner Jun 18, 2015
.travis.yml Add Travis support. Oct 25, 2016
LICENSE.txt Update LICENSE.txt to MPL 2.0 Jun 6, 2012
NOTICE.txt Add a NOTICE with the V8 copyright message. Feb 23, 2015
README.md Update release notes and readme for Feb 1, 2016
RELEASE-NOTES.md Update release notes and readme for Feb 1, 2016
apiClasses.properties Bug 754258 - update license to MPL 2. Jun 1, 2012
build-date Massive reconfiguration of the cvs directory structure: Apr 24, 2001
build.gradle Use Caliper to run SunSpider benchmarks. Feb 19, 2016
build.properties Update files for next iteration. Jun 17, 2015
build.xml Initial checkin of typed arrays and tests from V8. Mar 2, 2015
gradle.properties Set up publication in snapshot repo. Jul 24, 2015
gradlew Permissions fix. May 6, 2015
gradlew.bat Permissions fix. May 6, 2015
release-steps.txt Update release code. Feb 1, 2016


Rhino: JavaScript in Java


Rhino is an implementation of JavaScript in Java.


Rhino is licensed under the MPL 2.0.


Rhino 1.7R5January 29, 2015
Rhino 1.7.6April 15, 2015
Rhino 1.7.7June 17, 2015
Rhino 2, 2016

Release Notes for recent releases.

Compatability table which shows which advanced JavaScript features from ES5, 6, and 7 are implemented in Rhino.


Information for script builders and embedders:


JavaDoc for all the APIs:


More resources if you get stuck:



Status of "master" branch

Java 6
Java 7
Java 8

How to Build

Rhino builds with Gradle. Here are some useful tasks:

./gradlew jar

Build and create Rhino jar in the build/libs directory.

./gradlew test

Build and run all the tests.

./gradlew testBenchmark

Build and run benchmark tests.

Releasing and publishing new version

  1. Ensure all tests are passing
  2. Remove -SNAPSHOT from version in gradle.properties in project root folder
  3. Create file gradle.properties in $HOME/.gradle folder with following properties. Populate them with maven repo credentials and repo location.

  4. Run Gradle task to publish artifacts to Maven Central.

    ./gradlew publish
  5. Increase version and add -SNAPSHOT to it in gradle.properties in project root folder.
  6. Push gradle.properties to GitHub


Rhino can run as a stand-alone interpreter from the command line:

java -jar buildGradle/libs/rhino-
Rhino 1.7.7 2015 05 03
js> print('Hello, World!');
Hello, World!

You can also embed it, as most people do. See below for more docs.


Most issues are managed on GitHub:


More Help

The Google group is the best place to go with questions: