A
Ajax
Aspect-Oriented
 
B
Bloggers
Build Systems
Business Intelligence
ByteCode
 
C
CMS
Cache Solutions
Charting & Reporting
Chat Servers
Code Analyzers
Code Beautifiers
Code Coverage
Collections
Command Line
Connection Pools
Crawlers
 
D
Databases
 
E
EJB Servers
ERP & CRM
ESB
Eclipse Plugins
Expression Languages
 
F
Financial Soft
Forum Soft
 
G
General Purpose
Geospatial
Groupware
 
H
HTML Parsers
 
I
IDEs
Installers
Inversion of Control
Issue Tracking
 
J
J2EE Frameworks
JDBC
JMS
JMX
JSP Tag Libraries
Job Schedulers
 
L
Localization
Logging Tools
 
M
Mail Clients
 
N
Network Clients
Network Servers
NoSQL Databases
 
O
Obfuscators
 
P
PDF Libraries
Parser Generators
Persistence
Portals
Profilers
Project Management
 
R
RSS & RDF Tools
Rule Engines
 
S
SQL Clients
Scripting Languages
Search Engines
Security
Source Control
Swing
 
T
Template Engines
Testing Tools
Text Processing
 
U
UML & Modeling
 
V
Validation
 
W
Web Frameworks
Web Mail
Web Servers
Web Services
Web Testing
Wiki Engines
Workflow Engines
 
X
XML Parsers
XML UI Toolkits
 

Open Source Scripting Languages in Java

Groovy

Groovy is a new agile dynamic language for the JVM combining lots of great features from languages like Python, Ruby and Smalltalk and making them available to the Java developers using a Java-like syntax. Groovy is designed to help you get things done on the Java platform in a quicker, more concise and fun way - bringing the power of Python and Ruby inside the Java platform. Groovy can be used as an alternative compiler to javac to generate standard Java bytecode to be used by any Java project or it can be used dynamically as an alternative language such as for scripting Java objects, templating or writing unit test cases.

Go To Groovy

Jython

Jython is an implementation of the high-level, dynamic, object-oriented language Python written in 100% Pure Java, and seamlessly integrated with the Java platform. It thus allows you to run Python on any Java platform.

Go To Jython

BeanShell

BeanShell is a small, free, embeddable, Java source interpreter with object scripting language features, written in Java. BeanShell executes standard Java statements and expressions, in addition to obvious scripting commands and syntax. BeanShell supports scripted objects as simple method closures like those in Perl and JavaScript(tm).

Go To BeanShell

Rhino

Rhino is an open-source implementation of JavaScript written entirely in Java. It is typically embedded into Java applications to provide scripting to end users.

Go To Rhino

JRuby

JRuby is a pure Java implementation of the Ruby interpreter

Go To JRuby

Tcl/Java

The Tcl/Java project's goal is to make integrating the Java platform and the Tcl scripting language as easy as possible. The project actually consists of two distinct packages, called Tcl Blend and Jacl.

Go To Tcl/Java

Jelly

Jelly is a tool for turning XML into executable code. So Jelly is a Java and XML based scripting and processing engine. Jelly can be used as a more flexible and powerful front end to Ant such as in the Maven project, as a testing framework such as JellyUnit, in an intergration or workflow system such as werkflow or as a page templating system inside engines like Cocoon.

Go To Jelly

Bean Scripting Framework (BSF)

Bean Scripting Framework (BSF) is a set of Java classes which provides scripting language support within Java applications, and access to Java objects and methods from scripting languages. BSF allows one to write JSPs in languages other than Java while providing access to the Java class library. In addition, BSF permits any Java application to be implemented in part (or dynamically extended) by a language that is embedded within it. This is achieved by providing an API that permits calling scripting language engines from within Java, as well as an object registry that exposes Java objects to these scripting language engines.

Go To Bean Scripting Framework (BSF)

Sleep

Sleep is the Simple Language for Environment Extension Purposes. Sleep is a small language with perl-like syntax for integration into Java applications. The attribute that makes Sleep different is it allows an application developer to develop "bridges". A bridge is a very simple class for adding new functions, predicates, operators, and even keywords for binding blocks of code. Sleep is easily extendable to make an application's features available to end-user scripters.

Go To Sleep

ObjectScript

ObjectScript is a general purpose object-oriented programming language. It is designed to be simple to learn, easy to use, yet still powerful, combining the convenience of an interactive interpreter with many of the features of Java:

Go To ObjectScript

Judoscript

JudoScript is a functional scripting language. It is a normal algorithmic/object-oriented programming and java scripting language, and also has a number of built-in domain support. And, because it can fully script Java, all Java resources are readily avaiable through Java scripting. — This means that, you can do everything directly and easily in a single environment, to deal with database, XML, SGML, spreadsheet and other files, application servers, web services and internet resources, Windows ActiveX controls, archive and Ant build scripts and processes, creating user-friendly GUI-based tools, ... so that you can focus more on the business of data analysis, reporting or aggregation, automated unit and system testing and batch processing jobs.

Go To Judoscript

seppia

Seppia is a java technology which allows you to build applications from constituent parts. Each part is a module: a unit of function integrating seamlessly javascript files, jar files and other resources. (Seppia uses Mozilla Rhino to empower its javascript engine.) Many scripting technologies allow the developer to embed scripting code into their java code. Seppia turns this approach by 180' degrees and let your javascript code governing your application. It's the javascript code that uses java libraries (jars) and not viceversa. Seppia will challenge the way you think of Java based component computing.

Go To seppia

ePascal

ePascal is interpreter of pascal programming language with own memory management. It was created for education purposes to learn algorithmic thinking of students of high schools.

Go To ePascal

LuaJava

LuaJava is a scripting tool for Java. The goal of this tool is to allow scripts written in Lua to manipulate components developed in Java. LuaJava allows Java components to be accessed from Lua using the same syntax that is used for accessing Lua`s native objects, without any need for declarations or any kind of preprocessing. LuaJava also allows Java to implement an interface using Lua. This way any interface can be implemented in Lua and passed as parameter to any method, and when called, the equivalent function will be called in Lua, and it's result passed back to Java.

Go To LuaJava

Yoix

The Yoix scripting language is a general-purpose programming language that uses syntax and functions familiar to users of C and Java. It does not use reflection to access Java functionality and thus adds value by not only simplifying access to that functionality, but also improving application reliability by coding through Java gotchas and complicated Java features one-time, behind-the-scenes. The Yoix language includes pointers, addressing, declarations, and global and local variables. In addition to supporting native user functions, users can add their own builtin functions written in Java. It is licensed under the Open Source Foundation CPL 1.0.

Go To Yoix

Kawa

Kawa is a Scheme environment, written in Java, and that compiles Scheme code into Java byte-codes. Kawa is a full Scheme implementation. It implements almost all of R5RS, plus some extensions. Kawa provides a framework for implementing other progressing languages, and comes with incomplete support for CommonLisp, Emacs Lisp, and EcmaScript, and the draft XML Query language.

Go To Kawa

fscript

FScript is an extremely simple scripting language. Its intended use is as an embedded language in other Java programs. It is very simple to embed - it can be as simple as sub-classing one class to add your own functionality. However is not a complete programming language, as it has no library of standard functions (such as IO and string processing). FScript supplies a base functionality (such as flow control, variable handling and basic math operations) that can extended by the host application.

Go To fscript

DynamicJava

DynamicJava is a JavaTM source interpreter. It executes programs written in JavaTM, like described in the Java Language Specification, in addition with scripting features. DynamicJava was written in pure JavaTM, is free and distributed with the source code.

Go To DynamicJava

Hecl

The Hecl Programming Language is a high-level scripting language implemented in Java. It is intended to be small, extensible, extremely flexible, and easy to learn and use.

Go To Hecl

Janino

Janino is a compiler that reads a JavaTM expression, block, class body, source file or a set of source files, and generates JavaTM bytecode that is loaded and executed directly. Janino is not intended to be a development tool, but an embedded compiler for run-time compilation purposes, e.g. expression evaluators or "server pages" engines like JSP. JANINO can also be used for static code analysis.

Go To Janino

JBasic

JBasic is a BASIC interpreter, written entirely in Java. It operates in “console” mode which means you run it from the command line of a shell. JBasic can run on most Unix systems including Mac OS X, the Windows command shell, or a VMS DCL command line

Go To JBasic

Nice

Nice is a new programming language. It extends the ideas behind object-orientation in order to better support modular programming and static type safety. It also incorporates features from functional programming, and puts into practice state-of-the-art results from academic research. This results in more expressivity, modularity and safety.

Go To Nice

InstantJ

InstantJ is a library you can use to compile and execute Java code or evaluate expressions written in Java. This is done on the fly - there is no pre-compiling step necessary. This is ideal in cases where expressions are either assembled programmatically at runtime, are read from descriptors or received from user-input.

Go To InstantJ

Simkin

Simkin is a high-level lightweight embeddable scripting language which works with Java or C++ and XML. Simkin enables you to hand over control of part or all of your application to your users. The language has been designed to be easy enough for non-programmers to use, and easy for you to supply a simple API for them to write to.

Go To Simkin

Jatha

Jatha, Common LISP library in Java, is a Java library that implements a fairly large subset of Common LISP, including most of the datatypes (e.g. packages, bignums) and their associated methods.

Go To Jatha

JScheme

JScheme is a dialect of Scheme with a very simple interface to Java, called the Javadot notation . This notation provides a transparent access to all Java classes, constructors, methods, and fields on the classpath. JScheme implements all of R4RS Scheme except that continuations can only be used as escape procedures and strings are not mutable.

Go To JScheme

SICS

Second Interpreter of Scheme Code is an extensible Java based interpreter of the algorithmic language Scheme. SISC uses modern interpretation techniques, and handily outperforms all existing JVM interpreters (often by more than an order of magnitude). In addition, SISC is a complete implementation of the language. The entire R5RS Scheme standard is supported, no exceptions.

Go To SICS

pnuts

Pnuts is a scripting language system based on JVM. It is intended to be a part of dual-language system based on Java platform. Some of the features are as follows.

 * Simple and clean syntax
 * Interactive interpreter
 * Extensible through its module system
 * Customizable and embeddable through Pnuts API
 * Dynamic/static translation to JVM bytecode
 * One of the fastest scripting language implemenations on JVM
 * Inherits many advantages of Java (security, portability, etc.)

Go To pnuts

Scala

Scala is a general purpose programming language designed to express common programming patterns in a concise, elegant, and type-safe way. It smoothly integrates features of object-oriented and functional languages. It is also fully interoperable with Java.

Go To Scala

ArmedBear / J

ArmedBear (ABCL) is a Common Lisp written in Java. Its compiler produces JVM byte code, tapping into the 'write once, run everywhere' philosophy of Java. J is a text editor written in Java featuring e.g. syntax highlighting and automatic indenting.

Go To ArmedBear / J

Clojure

Clojure is a dialect of Lisp, and shares with Lisp the code-as-data philosophy and a powerful macro system. Clojure is predominantly a functional programming language, and features a rich set of immutable, persistent data structures. When mutable state is needed, Clojure offers a software transactional memory system and reactive Agent system that ensure clean, correct, multithreaded designs.

Go To Clojure

Whiley

Whiley is a hybrid object-oriented and functional programming language which compiles to the JVM. Whiley employs extended static checking to eliminate errors at compile time, including divide-by-zero, array out-of-bounds and null dereference. Whiley's Extended static checking is made possible through the use of an automated theorem prover.

Go To Whiley






Java is a trademark or registered trademark of Sun Microsystems, Inc. in the United States and other countries. This site is independent of Sun Microsystems, Inc.