Java tools, components, libraries and plugins [NEW] My favorites| sign in | create your account  
proagora.com - .NET and Java jobs
Category

Compilation - Bytecode manipulation

Display options and filters
Sort by:
Built for Java
Free or free version available
Sold as a service
Library
Source code provided
Discontinued
Plug-in

GCJ

 Home Page Home Page

Categories: Compilation - Bytecode manipulation

Author: The GNU Project

Latest version: 4.0.0
Added 2005-05-11

Portable, optimizing, ahead-of-time compiler for the Java programming language.
GCJ can compile:
- Java source code directly to native machine code,
- Java source code to Java bytecode (class files),
- Java bytecode to native machine code.

Compiled applications are linked with the GCJ runtime, libgcj, which provides the core class libraries, a garbage collector, and a bytecode interpreter. libgcj can dynamically load and interpret class files, resulting in mixed compiled/interpreted applications.

Most of the APIs specified by "The Java Class Libraries" Second Edition and the "Java 2 Platform supplement" are supported, including collections, networking, reflection, and serialization. AWT is currently unsupported, but work to implement it is in progress.
Debugging is supported using recent versions of the GNU debugger, GDB.
In addition to regular native programming, GCJ can be configured as a cross-compiler, suitable for embedded systems programming.

GCJ is part of the GNU Compiler Collection (GCC).

Built for Java
Built for Java
Free or free version available
Free or free version available
Source code provided
Source code provided

Retrotranslator

 Home Page Home Page

Categories: Compilation - Bytecode manipulation, Miscellaneous

Latest version: 1.2.3
Added 2006-03-20Updated 2007-11-14

Tool that makes Java applications compatible with various versions of the Java platform.

Retrotranslator supports all Java 5 language features and a significant part of Java 5 API on J2SE 1.4. In other Java environments only the Java 5 language features that don't depend on the new API are supported.
Retrotranslator is based on the ASM bytecode manipulation framework and the backport of concurrency utilities.
Java 5 features supported: Generics, Annotations, Reflection on generics and annotations, Typesafe enums, Autoboxing/unboxing, Enhanced for loop, Varargs, Covariant return types, Formatted output, Static import, Concurrency utilities, Collections framework enhancements.

Built for Java
Built for Java
Free or free version available
Free or free version available
Source code provided
Source code provided

Excelsior JET

 Home Page Home Page

Categories: Compilation - Bytecode manipulation, Interoperability

Author: Excelsior

Latest version: 5.0
Added 2005-02-06Updated 2007-09-17

Java Virtual Machine enhanced with Ahead-Of-Time (AOT) compilation.

The AOT compiler transforms classes and jars into binary executables that run directly on hardware for Windows and Linux on the Intel x86 platform. These executables work faster than the original class files executed within a conventional JVM. In addition, your applications become more secure against tampering and code theft.
VM components responsible for Java memory management, threading, synchronization, security, etc., are placed into a DLL that you redistribute along with the precompiled executables. Among those runtime components is a JIT compiler that takes care of classes that could not be precompiled, thus enabling Excelsior JET to support the entire Java 2 Platform, Standard Edition 5.0 API, including dynamic class loading.
Your applications can use JNI and Invocation API to interoperate with C, C++ and Delphi, or use COM to interoperate with C++, VB6, VBA (and probably any other language that supports the COM interface).

Built for Java
Built for Java
Free or free version available
Free or free version available

ASM

 Home Page Home Page

Categories: Compilation - Bytecode manipulation

Author: ObjectWeb

Latest version: 3.0
Added 2005-02-21Updated 2006-06-07

ASM is a Java bytecode manipulation framework. It can be used to dynamically generate stub classes or other proxy classes, directly in binary form, or to dynamically modify classes at load time, i.e., just before they are loaded into the Java Virtual Machine.

ASM offers similar functionalities as BCEL or Serp, but ASM was designed to be used in a dynamic way and was therefore designed and implemented to be as small and as fast as possible.
ASM can of course be used in a static way too.

Built for Java
Built for Java
Library
Library
Free or free version available
Free or free version available
Source code provided
Source code provided

Visual J#

 Home Page Home Page

Categories: Code conversion - Language migration, Compilation - Bytecode manipulation, IDEs - IDE plug-ins, Languages

Author: Microsoft

Latest version: 2005
Added 2006-06-02

Visual J# is a tool that Java-language programmers can use to build applications and services to run on the .NET Framework.

Visual J# targets the .NET Common Language Runtime and can be used to develop .NET applications, including XML Web services and Web applications, making full use of the .NET Framework. Visual J# is not used for developing applications intended to run on a Java Virtual Machine. Applications and services built with Visual J# will run only on the .NET Framework.

Visual J# applications benefit from the following:
- Cross-language integration
- Versioning and deployment support
- Debugging and profiling services

Visual J# includes the following:
- The Visual J# compiler, which compiles Java-language sources to Microsoft Intermediate Language (MSIL)
- A binary converter that transforms Java-language bytecode into MSIL
- Independently developed class libraries designed to provide the functionality of most JDK level 1.1.4 class libraries and many of the classes in the JDK 1.2 java.util package
- Compatibility with Windows Foundation Classes (WFC) and many of the com.ms.* packages

Built for Java
Built for Java

BCEL

 Home Page Home Page

Categories: Compilation - Bytecode manipulation

Author: Apache Jakarta

Latest version: 5.1
Added 2005-02-01

The Byte Code Engineering Library is intended to give users a convenient possibility to analyze, create, and manipulate (binary) Java class files (those ending with .class). Classes are represented by objects which contain all the symbolic information of the given class: methods, fields and byte code instructions, in particular.

Such objects can be read from an existing file, be transformed by a program (e.g. a class loader at run-time) and dumped to a file again. An even more interesting application is the creation of classes from scratch at run-time. The Byte Code Engineering Library (BCEL) may be also useful if you want to learn about the Java Virtual Machine (JVM) and the format of Java .class files.

BCEL is already being used in several projects such as compilers, optimizers, obsfuscators, code generators and analysis tools.

It contains a byte code verifier named JustIce, which usually gives you much better information about what's wrong with your code than the standard JVM message.

Built for Java
Built for Java
Free or free version available
Free or free version available
Source code provided
Source code provided

ANTLR

 Home Page Home Page

Categories: Compilation - Bytecode manipulation, Languages

Author: Terence Parr

Latest version: 3.0
Added 2003-12-19Updated 2007-05-28

ANTLR, ANother Tool for Language Recognition, (formerly PCCTS) is a language tool that provides a framework for constructing recognizers, compilers, and translators from grammatical descriptions containing Java, C#, C++, or Python actions. ANTLR provides support for tree construction, tree walking, and translation.

Built for Java
Built for Java
Library
Library
Free or free version available
Free or free version available
Source code provided
Source code provided

JoGa

 Home Page Home Page

Categories: Compilation - Bytecode manipulation

Author: nq4

Java class file optimizer that uses several different optimization techniques:
- removing unused classes, methods and fields
- removing superfluous bytes
- merge classes together
- inline methods
- rename packages, classes, methods and fields
- create a zip/jar file
- optimize byte code
- remove debug info
- compress constant pool

Built for Java
Built for Java
Free or free version available
Free or free version available

Pizza

 Home Page Home Page

Categories: Compilation - Bytecode manipulation

Latest version: 1.1
Added 2005-08-23

Pizza is a compiler for Java and an important superset of the Java programming language. It is written in Java/Pizza and compiles to Java class files.

Built for Java
Built for Java
Free or free version available
Free or free version available
Source code provided
Source code provided

Retroweaver

 Home Page Home Page

Categories: Compilation - Bytecode manipulation, Miscellaneous

Latest version: 2.0.2
Added 2007-11-14

Bytecode weaver that enables you to take advantage of the new Java 1.5 language features, while still retaining total binary compatibility with 1.4 virtual machines.

Retroweaver operates by transforming Java class files compiled by a 1.5 compiler into version 1.4 class files which can then be run on any 1.4 virtual machine.
Retroweaver supports most 1.5 features while running on 1.4, including: generics, extended for loops, static imports, autoboxing/unboxing, varargs, enumerations, annotations.

Built for Java
Built for Java
Free or free version available
Free or free version available
Source code provided
Source code provided

Coco/R for Java

 Home Page Home Page

Categories: Code generation, Compilation - Bytecode manipulation

Latest version: 2006-09-19
Added 2006-10-07

Compiler generator that takes a compiler description in the form of an LL(1) attributed grammar and generates the scanner and the parser of the described parser.

Built for Java
Built for Java
Free or free version available
Free or free version available
Source code provided
Source code provided

Javassist

 Home Page Home Page

Categories: Compilation - Bytecode manipulation

Author: JBoss

Latest version: 3.6.0.GA
Added 2004-12-23Updated 2008-01-26

Class library for manipulation of Java bytecode.
Javassist (Java Programming Assistant) enables Java programs to define a new class at runtime and to modify a class file when the JVM loads it. Unlike other similar bytecode editors, Javassist provides two levels of API: source level and bytecode level. If the users use the source-level API, they can edit a class file without knowledge of the specifications of the Java bytecode. The whole API is designed with only the vocabulary of the Java language. You can even specify inserted bytecode in the form of source text; Javassist compiles it on the fly. On the other hand, the bytecode-level API allows the users to directly edit a class file as other editors.
Possible uses:
- Aspect Oriented Programming: Javassist can be a good tool for introducing new methods into a class and for inserting before/after/around advice at the both caller and callee sides.
- Reflection: One of the applications of Javassist is runtime reflection; Javassist enables Java programs to use a metaobject that controls method calls on base-level objects. No specialized compiler or virtual machine are needed.
- Remote method invocation: Another application is remote method invocation. Javassist enables applets to call a method on a remote object running on the web server. Unlike the Java RMI, the programmer does not need a stub compiler such as rmic; the stub code is dynamically produced by Javassist.

Built for Java
Built for Java
Library
Library
Free or free version available
Free or free version available
Source code provided
Source code provided

Spoon

 Home Page Home Page

Categories: Compilation - Bytecode manipulation, Decompilation, Object browsing - Library viewers

Author: INRIA

Latest version: 1.0 RC 3
Added 2006-09-07

Java program processor that provides a Java metamodel where any program element (classes, methods, fields, statements, expressions...) can be accessed both for reading and modification.
Spoon can be used on validation purpose, to ensure that your programs respect some programming conventions or guidelines, or for program transformation, by using a pure-Java template engine.

Spoon provides an Eclipse plugin (SpoonJDT) that allows for integration of Spoon within the Eclipse environment. With SpoonJDT, a set of validations and transformations packaged as a Spoonlet can occur on the fly and the reports are well-integrated into the Eclipse JDT.

Built for Java
Built for Java
Plug-in
Plug-in
Free or free version available
Free or free version available
Source code provided
Source code provided

JBrowser

 Home Page Home Page

Categories: Compilation - Bytecode manipulation, Documentation - Code commenting

Author: CodeWork

Utility that lets you analyse information contained in class files.

JBrowser reads class and jar files and displays all class members (including private elements). Source code is not required to browse, if source is available, the class browser provides additional features:
- It displays Javadoc help extracted from the source; there is no need for additional help files.
- Double-clicking on an element opens the source context in an editor window.

Built for Java
Built for Java

Declawer

 Home Page Home Page

Categories: Compilation - Bytecode manipulation

Customized Java compiler extension that lowers JDK 1.5 language features (generics, foreach, varargs, etc.) to equivalent 1.4 syntax.

Built for Java
Built for Java
Free or free version available
Free or free version available
Source code provided
Source code provided

jclasslib

 Home Page Home Page

Categories: Compilation - Bytecode manipulation, Object browsing - Library viewers

Author: ej-technologies

Latest version: 3.0
Added 2005-01-17

Open source Java bytecode viewer that visualizes all aspects of compiled Java class files and the contained bytecode.
jclasslib also contains a Java bytecode manipulation library that enables developers to read, modify and write Java class files and bytecode.

Built for Java
Built for Java
Library
Library
Free or free version available
Free or free version available
Source code provided
Source code provided

JBossRetro

 Home Page Home Page

Categories: Compilation - Bytecode manipulation

Author: JBoss

Latest version: 1.1.2
Added 2007-11-14

Tool that weaves classes such that the bytecode is 48.0 version compatible. JBossRetro replaces invocations to JDK5 API with code that does the same thing in JDK1.4.

Built for Java
Built for Java
Free or free version available
Free or free version available
Source code provided
Source code provided
Ignore this
Advertise here! Contact us to know the options
Help the Java community get a consensus on great tools. Display your favorite tools on your own website or on your blog.
Keep track of your favorite tools. Build your personal watch list.
 
Advertise here! Contact us to know the options
Discontinued tools
Hosted by Arvixe
Java, J2EE, and all Java-based marks are trademarks or registered trademarks of Oracle.
This site is not affiliated in any way with Oracle.
part of the metaSapiens network: metaSapiens | Java Jobs | Fabrice's weblog | .NET tools | Java tools | Tuneo | LINQ book | MapShares | BD ind?pendante | Parking partag?