compiling java to native code
JavaNativeCompiler 1.1.1
JavaNativeCompiler (JNC) is a Java to native compiler. more>>
This is especially useful when applications have to be deployed to end-users. All vexatious problems of deploying Java applications can be solved by compiling them to native. They will be:
- Easy to deploy
No JRE dependency. Most end-users dont know what they have installed.
No more problems on how to create an executable file out of a JAR or class file.
- Hard to decompile
Java can easily be decompiled. Native compilation will protect your source code.
- Run fast from the start
No more overhead for loading a JRE.
Enhancements:
- This release fixes a couple of problems with AWT/Swing and XML.
- It also once again contains a version for Linux.
- The compiler binary downloads are smaller.
Inline::Java 0.52
Inline::Java lets you write Perl classes in Java and wrap/use existing Java classes. more>>
File::Comments::Plugin::Java 0.07
File::Comments::Plugin::Java is a Perl plugin to detect comments in Java source code. more>>
SYNOPSIS
use File::Comments::Plugin::Java;
File::Comments::Plugin::Java is a plugin for the File::Comments framework.
Both /* ... */ and // style comments are recognized.
This is not a full-blown C parser/preprocessor yet, so it gets easily confused (e.g. if c strings contain comment sequences).
Lightweight Java Game Library 1.1.2
Lightweight Java Game Library project is a native binding to OpenGL and OpenAL. more>>
The Lightweight Java Game Library is a native binding for OpenGL and OpenAL written with game developers in mind.
It allows the full OpenGL and OpenAL APIs to be exposed without the penalties associated with competing methods, nor the limitations of APIs such as Java3D.
Tutorials and demos are available, and Windows, Linux, and Mac OS X are supported.
Main features:
- Speed
- Simplicity
- Ubiquity
- Smallness
- Security
- Robustness
- Minimalism
Enhancements:
- Dont allow switching to fullscreen when a custom display mode is in effect. This is a change from before, where the current mode was simply overwritten with the initial (desktop) mode
Java Games 1.0
Java Games is a collection of simple games that are compiled into Java applets and meant to be played online in a Web browser. more>>
Currently the collection contains four games: XO World (similar to tic-tac-toe, but with lines of 5 on a 10x10 board); 100 Mack (guess the random combination of 4 images out of a set of six); Memory (flip 2 plates at a time to find matching pairs); and Tetris.
Java Tools 0.30
Java Tools is a lightweight integrated development environment for creating, compiling, and executing Java applications. more>>
Java Tools includes point and click access to the Java files, commands, and documents. It also includes a built-in text editor and user interface for the Java debugger.
It is intended for the new Java user who needs help getting started. Its also for the more experienced Java user who wants easy access to the Java commands and a text editor.
Main features:
- GUI with built-in help and small footprint.
- Point and click access to all files (Java, manifest, HTML, image and sound) and directories (package).
- Point and click access to all commands for compiling (javac), archiving (jar), documenting (javadoc), executing (java), debugging (jdb) and disassembling (javap).
- Point and click access to all documents (Java API Specification, Java Tools and Utilities, Java Features and Java Tutorial).
- Point and click creation of all files (Java, manifest and HTML) and directories (package).
- Point and click installation of distribution archive files (Java document, Java source code, Java Tutorial and Sun Tools).
- Automatic determination of class file dependencies for archiving (jar) and documenting (javadoc) Java files.
- Checking for unused, redundant and missing imports.
- Logging of all commands invoked by GUI.
- Code metrics for Java files.
- Built-in text editor (see Edit for details).
- Built-in user interface for the Java debugger with command-line editing and history.
- Self-installing executable (Java archive file).
- Comprehensive installation and user documentation for Java and Java Tools.
Java for C++ 0.4
Java for C++ is a tool to generate C++-wrapper-classes for existing Java-classes. more>>
The implementation of the wrapper classes uses JNI (Java Native Interface) to call the "real" Java classes.
The C++-API to use these wrapper classes is very close to the API of the original Java classes. So developers of C++-software can use Java-classes as if they have been implemented in C++.
Enhancements:
- A problem where null values for method arguments, method return values, or field values caused some generated code to crash was fixed.
- Updating is strongly encouraged.
Java Units Generator and Converter 0.1
Java Units Generator and Converter (JUGC) is a Java tool and library for converting between measuring units. more>>
It makes it possible to define units, their relationships and translations in files, to generate code from those definitions and deploy the generated code as a library in a Java project.
The generated code can then be used to convert values from one unit to another.
Enhancements:
- This initial version does the basic conversions using double precision floating point.
Java Platform Invoke API Demo (Linux) 2.01.04
Java Platform Invoke API (Demo version) for Linux, i386. Enables Java code to call native functions implemented in shared libraries like in Microsoft .NET Framework. Written for JSE 1.5.x and later. more>>
Java Platform Invoke API Demo (Linux) - Java Platform Invoke API (Demo version) for Linux/Unix, i386.
Enables Java code to call native functions implemented in shared link libraries like in Microsoft .NET Framework. Written for JSE 1.5.x and later.
Java platform invoke an API that enables Java code to call native functions implemented in shared libraries, such as those in the Linux API. It locates and invokes an exported function and marshals its arguments (integers, strings, arrays, structures, and so on) across the interoperation boundary as needed. This API supports implicit marshaling that makes Java coding with native functions very simple.
To consume a shared library functions you need
1.Identify functions in shared librarys.
Minimally, you must specify the name of the function and name of the the shared library that contains it.
2.Create a class to hold shared library functions.
You can use an existing class, create an individual class for each native function, or create one class that contains a set of related native functions. This class should extend CNativeLibrary. Use the annotation ImportLibrary to bind your class to the native library.
3.Create prototypes in Java code.
Write prototype of a native function as a method with signature that corresponds to the native function using data type map agreement. To identify the native function use the annotation Function. Mark the method with the native modifier.
4.Call a shared library function.
Call the method on your Java class as you would any other Java method. As parameters can be passed structures and implemented in Java callback functions.
Enhancements:
Version 2.01.04
System Requirements:JSE 1.5.x<<less

Java Clazz Utils 1.2.2
Java Clazz Utils offers you a full-featured and crossplatform Java bytecode viewer and decompiler which can support latest Java versions (from 1.4 till 1.6). more>>
Java Clazz Utils 1.2.2 offers you a full-featured and crossplatform Java bytecode viewer and decompiler which can support latest Java versions (from 1.4 till 1.6). It can be used both as command line tool and user application with Swing interface. It contains InfoJ, Decompiler and jclazz-GUI.
Major Features:
- InfoJ can be used to generate information about Java class. The output includes all possible data that can be extracted from class file: fields, methods, attributes, access flags, signatures, debug information, opcodes etc.
- Decompiler can be used to reproduce Java source code from compiled Java class file. It uses debug information to produce Java code which is nearly the same as original source file. Nevertheless, there are several restrictions and Java code constructions that prevent decompiler from producing the same code as original and even correct Java code. You can find out more about these cases below on this page.
- jclazz-GUI is user-friendly interface for quick start and easy to use.
Enhancements:
- Save of decompiled file writes to predefined file name - Fixed
- Condition structures "condition ? operation1 : operation2" were decompiled incorrectly - Fixed
- URL to bug reporting page is corrected
C# Java Virtual Machine 1.0.1
C# Java Virtual Machine is a tiny implementation of the Java VM, including simple native classes. more>>
Enhancements:
- The DbConnection class, which provides a connection to MS SQL or PostgreSQL using ADO.NET, was added.
- The Syst.MachineName method, which returns the machine name, was added.
- String.startsWith and String.endsWith functions were added.
- Some comments for VM.cs were written.
libgtk-java 2.10.2
Java-GNOME is a set of Java bindings for GNOME and GTK libraries, so GNOME applications can be written in Java. more>>
libgtk-java is implemented as a JNI layer that delegates the Java calls out to the underlying C library.
Installation:
The simplest way to compile this package is:
1. `cd to the directory containing the packages source code and type `./configure to configure the package for your system. If youre using `csh on an old version of System V, you might need to type `sh ./configure instead to prevent `csh from trying to execute `configure itself.
Running `configure takes awhile. While running, it prints some messages telling which features it is checking for.
2. Type `make to compile the package.
3. Optionally, type `make check to run any self-tests that come with the package.
4. Type `make install to install the programs and any data files and documentation.
5. You can remove the program binaries and object files from the source code directory by typing `make clean. To also remove the files that `configure created (so you can compile the package for a different kind of computer), type `make distclean. There is also a `make maintainer-clean target, but that is intended mainly for the packages developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution.
Fast MD5 Implementation in Java 2.6.1
Fast MD5 Implementation in Java is a heavily optimized implementation of the MD5 hashing algorithm written in Java. more>>
Fast MD5 Implementation in Java includes an optional native method for even greater speed improvements.
How Fast Is It?
Short answer:Much faster than any other Java implementation that I have tested and (surprisingly) even faster than the native, non-Java MD5 implementation on some systems.
Long answer:First of all, it is important to note that the term "fast" is used here in relative terms. The implementation of the MD5 message digest algorithm available on this page is written in Java and is fast compared with other implementations written in Java, both because it is heavily optimized by itself and because there is an optional native method that makes it even faster when the platform supports it. How it compares to a sensible implementation written in a language, such as C, that is compiled directly to machine code, is heavily dependent upon how good of a job the JIT compiler in your JVM does in compiling the code or whether you are able to use the optional native method.
Enhancements:
- Martin West contributed a bug fix and some code refactoring to make all targets work out of the box in the Ant build file. Previously, the "dist" target did not work if the "docs" directory was not present.
libgnome-java 2.12.7
Java-GNOME is a set of Java bindings for GNOME and GTK libraries, so GNOME applications can be written in Java. more>>
Java-GNOME is implemented as a JNI layer that delegates the Java calls out to the underlying C library.
Installation:
The simplest way to compile this package is:
1. `cd to the directory containing the packages source code and type `./configure to configure the package for your system. If youre using `csh on an old version of System V, you might need to type `sh ./configure instead to prevent `csh from trying to execute `configure itself.
Running `configure takes awhile. While running, it prints some messages telling which features it is checking for.
2. Type `make to compile the package.
3. Optionally, type `make check to run any self-tests that come with the package.
4. Type `make install to install the programs and any data files and documentation.
5. You can remove the program binaries and object files from the source code directory by typing `make clean. To also remove the files that `configure created (so you can compile the package for a different kind of computer), type `make distclean. There is also a `make maintainer-clean target, but that is intended mainly for the packages developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution.
UML::Sequence::JavaSeq 0.07
UML::Sequence::JavaSeq is a Perl module for use with genericseq.pl script, works on compiled Java programs. more>>
SYNOPSIS
genericseq.pl UML::Sequence::JavaSeq Hello.methods Hello > Hello.xml
seq2svg.pl Hello.xml > Hello.svg
OR
genericseq.pl UML::Sequence::JavaSeq Hello.methods Hello | seq2svg.pl > Hello.svg
This file depends on UML::Sequence::SimpleSeq and a Java tool called Seq.java. The later produces an outline of the calls to methods named in Hello.methods. The former provides methods UML::Sequence needs to produce an xml sequence. Look in the provided Hello.methods to see what options you have for controlling output.
For this class to work, you must have Seq.class (and its friends) and tools.jar (the one containing the the jpda) in your class path. Your jpda must be happy. (The jpda is the Java Platform Debugger Architecture. It ships with java 1.3.)
grab_outline_text
Call this method through the class name with the method file, the class you want to sequence, and any arguments that classs main method needs. Returns an outline you can pass to UML::Sequence::SimpleSeq->grab_methods and to the UML::Sequence constructor.