About
The compilation create a class source.class file from a java source file ie source.java file.
The create class language is called Java - Bytecode (classfile) and can be run on any OS with any java executable (ie Java - Java Virtual Machine (JVM|Java))
Articles Related
Type
javac utility
Basic
The javac utility permits to compile a the source file of a class
javac -sourcepath src -d build\classes src\com\gerardnico\HelloWorld.java
will create the file
build\classes\HelloWorld.class
To a specific java version
In order to to generate class files compatible with Java 1.4, use the following command line:
javac -source 1.4 HelloWorld.java
Code
Compile within the code, see Java - Dynamic Java code execution (at runtime)
Check
Get the compiler version
To get the version of the target Java image used by javac (ie the java version), you can use javap
From the root directory of your project (normally src/java), execute the following command
javap -verbose com.domain.classname | grep "major"
major version: 52
where:
Java Version | Major version |
---|---|
1.2 | 46 |
1.3 | 47 |
1.4 | 48 |
5 | 49 |
6 | 50 |
7 | 51 |
8 | 52 |
9 | 53 |
10 | 54 |
11 | 55 |
Library
the java compiler library is located at javase/9/docs/api/javax/tools/JavaCompiler.html. It is javase/9/docs/api/javax/tools/Tool.html (Before the implementation of module in Java 9, bundled in
/lib/tools.jar'')A tool is a common interface tools that can be invoked from a program.
Add the compiler as dependency (see Maven doc)
<dependency>
<groupId>jdk.tools</groupId>
<artifactId>jdk.tools</artifactId>
<scope>system</scope>
<systemPath>${java.home}/../lib/tools.jar</systemPath>
</dependency>