Download Janino 3 for Windows - A super-small, super-fast Java compiler that can combine sets of source files to sets of class files, process expression
Janino is a super-small, super-fast Java compiler. Janino can not only compile a set of source files to a set of class files like JAVAC, but also compile a Java expression, a block, a class body, one .java file or a set of .java files in memory, load the bytecode and execute it directly in the same JVM.
JANINO is integrated with Apache Commons JCI ("Java Compiler Interface") and JBoss Rules / Drools. It packs a series of Java language features that are categorized by version. Therefore, you can find features from Java 1.4, 5, 7, 8, 9, 10 and 11.
Some of the features of Janino:
Java 7 language features:
- Binary integer literal (JLS7 3.10.1)
- Underscores in numeric literals (JLS7 3.10.1)
- String
switch
statement (JLS7 14.11) try
-with-resources statement (JLS7 14.20.3)catch
ing and rethrowing multiple exception types: Partially implemented; parsed and unparsed, but not compilable- Type interference for generic instance creation (a.k.a. the "diamond operator") (JLS11 15.9.1)
Java 8 language features:
- Lambda expressions: Partially implemented; parsed and unparsed, but not compilable
- Method references: Partially implemented; parsed and unparsed, but not compilable
Java 9 language features:
- Enhanced
try
-with-resources statement, allowingVariableAccess
es as resources (JLS9 14.20.3) - Modules: Partially implemented; modular compilation units are parsed and unparsed, but not compilable
Java 10 language features:
- Local variable type inference: Partially implemented; parsed and unparsed, but not compilable
Java 11 language features:
- Lambda parameter type inference: Partially implemented; parsed and unparsed, but not compilable.
How to download and use Janino:
1) Download the latest version of "janino-version.jar".
2) Download the same version of "commons-compiler-version.jar".
3) Put the two JAR files on your classpath.
Done.
Requirements:
JANINO only requires a Java 6 (or later) JRE or later, not a JDK. It has no dependencies whatsoever on any third-party libraries.