Free Java Compilers, Assemblers, Native Code Compilers
Java compilers and development kits to build applications, applets, Java Beans
Free Java Compilers, Assemblers & Java Development Kits (JDK)
This page lists free Java compilers, Java assemblers, Java builders, Java Development Kits (JDK), and Java to native code compilers, that you can use to create Java applications, Java Beans, Java Applets and the like. Some of these are complete Java development environments while others only include the compiler and debugger. Other Java pages on this site that you may be interested in include:
Looking for a Java book? One frequently recommended book on Java is Java in a Nutshell. I use the first edition of this book myself to learn Java and have found it most usable. The later editions include support for the newer versions of the JDK, as well as extended the explanations to make it easier for non-C programmers to understand the book (the first two editions targeted C programmers).
Due to the large size of the later versions of the language, the Java Foundation Classes (which you will need if you are writing Java applets) are covered separately in the companion book, Java Foundation Classes in a Nutshell. If you learn best through studying examples, the author also has a book Java Examples in a Nutshell. You'll probably get your program up fastest if you model it on an existing working example.
Free Java Compilers, Java to Native Code Compilers, Java Development Kits (JDK)
- Sun Microsystems' Java Development Kit (JDK) (Java SE)
You can get free Java Development Kits for a number of platforms (Windows, Linux, Solaris SPARC, Solaris x86) from the creator of Java. The kits include the Java compiler, Java debugger and Java class libraries for generating Java bytecode. I find this compiler rather slow.
- GNU Compiler for the Java Programming Language (GCJ)
This Java compiler is developed independently of the one by Sun. It is able to generate both Java bytecode and native machine code, as well as convert Java bytecode into native machine code (so theoretically you can even use this compiler to convert a Java program compiled by another compiler into a native binary/executable). Your compiled applications can also be a mixture of compiled native code and Java bytecode. It comes with its own class libraries and garbage collector. The advantage of this compiler over Sun's is its ability to generate native machine code and its wide cross-platform availability. Supported platforms include Windows, Linux, AIX, DOS, Renesas, HP-UX, SCO OpenServer/Unixware, Solaris, SGI, IRIX, Digital Unix, OS/2, and so on (too many to list).
- Jikes Java Compiler
Jikes is a Java compiler that is supposedly faster than most other compilers. It is also able to compute the dependency requirements in programs and so generate makefiles. If you want faster development cycles, you might also fancy its ability to perform incremental compilations. Platforms supported: Windows 95/NT, AIX, OS/2, Linux, Solaris Sparc. The compiler handles constructs exactly according to the Java specifications. Source code is available under an open source licence (IBM Public License).
- Toba (Java to C Compiler)
Toba translates Java applications to C source files, from which you can compile into native executables (binaries). The program is distributed in source code form, and has been tested on Linux, Irix 6.2 and Solaris 2.5. Note that this compiler is no longer being maintained, and uses only the old JDK 1.1.
Free Java Assemblers
- Java Bytecode Assembler
This is an assembler that converts Java "assembly language" into valid Java class files. The input language is similar to that generated by Sun's javap utility.
According to the website, Jasmin "takes ASCII descriptions for Java classes, written in a simple assembler-like syntax using Java Virtual Machine instruction set" and generates a Java class file.
How to Link to This Page
It will appear on your page as: