BeanShell to darmowy interpreter Javy, wymyślony przez Pata Niemeyera. Działa w środowisku Java Runtime Environment (JRE) i używa standardowej składni Java, a także luźnych typów, zamknięć poleceń i metox. BeanShell dodaje do języka Java funkcje podobne do skryptów. Podobnie jak Javascript, jest to język skryptowy oparty na obiektach. Została zaakceptowana jako żądanie specyfikacji Java (JSR), co jest pierwszym krokiem do pełnej integracji w języku programowania Java.
Jako interpreter Javy, BeanShell może być używany do interpretacji zwykłej składni Javy, ale może również interpretować własną składnię, która może być wykorzystana do skalowania Javy ze statycznego do dynamicznego języka programowania. BeanShell został nieoficjalnie nazwany przez programistów Little Java, ponieważ pod wieloma względami bardzo przypomina składnię języka programowania Java. Dodaje jednak obsługę wielu nowych funkcji, takich jak luźno typowane zmienne, w których zmienna nie musi być najpierw deklarowana. BeanShell obsługuje również obiekty skryptowe jako proste zamknięcia metod i procedury obsługi zdarzeń Abstract Windows Toolkit/Swing.
BeanShell ma stronę internetową, z której można go pobrać. Stronę internetową można zlokalizować wpisując „BeanShell” w dowolnej wyszukiwarce internetowej. Na tej stronie użytkownicy znajdą wiele opcji i mogą pobrać pakiet BSH, który zawiera główny interpreter, polecenia powłoki i narzędzia.
Użytkownicy, których wersja Java nie zawiera Swing, muszą dodać plik archiwum Java swingall (JAR) do ścieżki klasy. Niektóre narzędzia wykorzystują Swing. Po skonfigurowaniu Swing w ścieżce klas, BeanShell będzie pracował w interaktywnym interpreterze konsoli lub interaktywnym interpreterze graficznym.
BeanShell to projekt typu open source. Jest mały i można go osadzić. BeanShell został zintegrowany z wieloma aplikacjami, w tym testowaniem, konfiguracją, systemami wbudowanymi, silnikami reguł, rozszerzeniem skryptów użytkownika, szybkim prototypowaniem, dynamicznym wdrażaniem, a nawet edukacją Java.