Free Java Resources and Tools
Java Decompilers, Virtual Machines, Debuggers, Lint, etc
Free Java Tools, Decompilers, Disassemblers, Virtual Machines, Debuggers, Resources
This page lists free Java resources and tools: Java disassemblers, decompilers, Java IDEs, Java Virtual Machines (JVM), Java debuggers, and the like. Other Java pages on this site that you may be interested in include:
- Free Java Compilers, Assemblers and Java Development Kits
- Free Java Class Libraries, Source Code and Applets
- Free Java IDEs and Editors
- Free Programming Editors and IDEs
- Free Compiler Construction Tools: Lexical Analyzers, Parser Generators, Back-End Generators, Optimizer Generators
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 newer versions of Java, 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: A Tutorial Companion to Java in a Nutshell. You'll probably get your program up fastest if you model it on an existing working example.
Related Pages
- How to Make / Create a Website: The Beginner's A-Z Guide
- Free AJAX Libraries, Source Code, Frameworks, Tools and Resources
- Free Help Authoring Tools
- Free Resource Editors, Compilers and Icon Editors
- Free Text Search and Replace Utilities
- Free Debugging Tools, Static Source Code Analysis Tools, Bug Trackers
- Free File Comparison and Differencing Utilities
- Free Installers and Setup Utilities
- Free Source Code Version Control Software
Free Java Decompilers and Java Class Browsers
- jclassinfo
jclassinfo is a utility written in C (with the source code provided) that reads Java class files and provides you information about the class, its dependencies and so on. It supports both Windows and Linux.
Free Java Virtual Machines (JVM)
- Sun Java Development Kit and Runtime Environment
Sun's Java Development Kit (JDK) and Runtime Environment (JRE) are available free of charge from their site. It's available for Windows, Linux, Solaris SPARC, Solaris x86, Linux x64 and Windows x64.
- JamVM
JamVM is a Java Virtual Machine that conforms to the JVM specification version 2 (blue book). It is designed to supports the full specification, including object finalisation, the Java Native Interface (JNI) and the Reflection API. Supported platforms include LinuxPPC, Mac OS X/Darwin, Linux for i386 and Linux for ARM processors.
- Kaffe OpenVM
Kaffe is a Java virtual machine (JVM), developed independently of Sun, that supports PersonalJava 1.1 bytecode and comes with its own standard class libraries, beans, Abstract Window Toolkit (AWT), and native libraries. There is even a just-in-time (JIT) compiler. The entire works comes with source code (under LGPL). If you need some other license for the code, the site says that you can actually pay them for a license with less encumberances.
- Japhar
This Java virtual machine, from the Hungry Programmers, comes with source code (under LGPL). Like Kaffe, it was written independently of Sun. It looks like it supports a lot of Java 1.1 and 1.2. However, it doesn't seem to have been updated since 1998.
Free Java Debuggers and Lint
- PMD Java Source Code Static Analysis Tool
PMD is a Java source code static analysis tool. It checks your Java source for various potential problems (just as the lint utility in the C world does with C) and informs you of any parts of your code that can cause problems. PMD is open source, and is licensed under a BSD-style licence.
- JPF - Java PathFinder
Java PathFinder (JPF) is verifies Java bytecode programs. It is "a Java Virtual Machine (JVM) that is used as an explicit state software model checker, systematically exploring all potential execution paths of a program to find violations of properties like deadlocks or unhandled exceptions" (quoted from the website). It may be useful in locating hard-to-test concurrency defects in multithreaded programs.
- ODB - Omniscient Debugger
ODB, or the Omniscient Debugger, is Java debugger written in Java that collects information about your program at certain points of interest in a program run. The programmer can then explore the history of the run. The ODB is released under the GNU GPL.
- Jlint: Java Program Checker
Like the lint utility which checks C programs, jlint is a program checker that scrutinizes your Java source code for suspicious constructs that might indicate a program bug. The program is released under the GNU GPL. Binaries are available for Windows. For other platforms, you can compile the code yourself using a C++ compiler like GNU gcc (see the Free C/C++ Compilers page to get one).
Free Java Compiler Construction Tools
Note: more compiler construction tools can be found on the Free Compiler Construction Tools: Lexical Analyzers, Parser Generators, Back-End Generators, Optimizer Generators page.
- Byacc/J
This is a version of Berkeley yacc modified so that it can generate Java source code. You simply supply a "-J" option on the command line and it'll produce the Java code instead of the usual C output. You can either get the free source code and compile it yourself, or download any of the precompiled binaries for Solaris, SGI/IRIX, Windows 95/NT, and Linux. Like the byacc original, your output is free of any restrictions, and you can freely use it for any purpose you wish.
- ANTLR
ANTLR generates a recursive descent parser in C, C++ or Java from a predicated-LL(k>1) grammar. It is able to build ASTs automatically.
- SableCC
This is an object-oriented framework that generates DFA based lexers, LALR(1) parsers, strictly typed syntax trees, and tree walker classes from an extended BNF grammar (in other words, it's a compiler generator). The program was written in Java itself and runs on any Java 1.1 (or later) system.
- Java Compiler Compiler (JavaCC) - Java Parser Generator
This Java parser generator is written in Java and produces pure Java code. It even comes with grammars for Java 1.0.2, 1.1 as well as HTML. It generates recursive descent parsers (top-down) and allows you to specify both lexical and grammar specifications in your input grammar. In terms of syntactic and semantic lookahead, it generates an LL(1) parser with specific portions LL(k) to resolve things like shift-shift conflicts. The input grammar is in extended BNF notation. It comes with JJTree, a tree building preprocessor; a documentation generator; support for Unicode (and hence internationalization), and many examples. There are numerous other features, including debugging capabilities, error reporting, etc.
Related Pages
- Free Autorun/Autoplay DVD and CD Menu Creation Software
- How to Register Your Own Domain Name - get one for your software
- Free ODBC Drivers, SQL Servers and Tools, Database Libraries and Source Code
- Free Sockets, Winsock, TCP/IP, Internet Libraries and Source Code
- Free Educational Programming Languages - Teach Kids Programming
- Which Web Host Do You Recommend? (FAQ)
- Tips on Choosing a Good Domain Name - get one for your software
Newest Pages
- How to Convert Your Website from XHTML 1.0 to HTML5 the Quick and Easy Way
- How to Set the Height of a DIV Relative to a Browser Window (CSS)
- Free EPUB Readers (Ebook Viewing Software)
- How to Generate the Free Let's Encrypt SSL Certificate on Your Own (Windows) Computer
- How to Insert Meta Tags into a Web Page with BlueGriffon
- How to Play a Song (or Some Other Audio Clip) from a List on a Website
- Two Ways to View a Binary File on Windows Without Installing Anything
- How to Draw a Horizontal Line on a Web Page with Expression Web
- How to Create a Website Free of Charge
- Why Can't I Make Up Any Domain I Want? Is There a Way to Do Away with a Registrar Altogether?
How to Link to This Page
It will appear on your page as:
Free Java Tools, Decompilers, Disassemblers, Virtual Machines, Debuggers, Resources