java native compilers
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.
Java Brainfuck Compiler 2.0
Java Brainfuck Compiler is an optimising Brainfuck to Java bytecode compiler. more>>
Scriptol Compilers 6.2
Scriptol is an object oriented programming language. more>>
Scriptol Compilers is universal, and allows building dynamic Web pages (with PHP as the backend), writing scripts, and building binary applications. It is compatible with Java and C++ libraries. Examples of use with PHP, Java, and GTK are included.
How to install the Java extension for Php or C++
1) Installing Java for Php
Search for the java path, example:
c:jdk1.4
Search for the php extensions path, example:
c:phpextensions
The extension directory must hold these files:
php_java.dll
php_java.jar
Set these lines into php.ini (in the Windows directory)
extension_dir = c:phpextensions
extension=php_java.dll
Search for the [java] section in php.ini - java.class.path must be assigned the path of all jar or class files including php_java.jar, separated by a semi-colon. (You can use a dot to designate the current path for yours jar or class file) - java.home
must be assigned the path of Java. - java.library
must be assigned the path of jvm.dll. - java.library.path
must be assigned the path of php extensions, that hold php_java.dll and php_java.jar and the path of any Java class you want to use.
- If these classes are inside jar files, the jar filenames are a part of the path.
- If several paths are required, they are separated by semicolons and enclosed in double quotes.
Example:
[Java]
java.class.path = "c:phpextensionsphp_java.jar;c:myclasses"
java.home = "c:jdk1.4"
java.library = "c:jdk1.4jrebinclientjvm.dll"
java.library.path = "c:phpextensions;c:jdk1.4jrelib"
2) Installing Java for Scriptol C++
- The jvm.dll must be in the path.
- The jvm.lib, jni.h, jni_md.h files must be in the directory of the source.
- The JAVA_HOME variable must be assigned the path of the JDK (ex: c:jdl1.4).
- See the README file if you encounter problems...
Scriptol to binary Compiler
Scriptol to binary Compiler is a C++ native compiler. more>>
Installation:
It is better to install Scriptol at root of a disk, for example:
c:scriptolc
Once the archive is extracted into the scriptolc directory, you have just to change to this directory to run the compiler.
To use the compiler at command line from any directory, you have to put the compiler into the path variable.
The setup script installs required file into sub-directories, or into the directory given as argument. Before to use the compiler, you have to read the licence, in the doc
directory: licence.html.
Usage:
Just type:
./solc mysource
Type "solc" only to list the options.
If your program is a multi-file project, the source given as parameter must be the main source file, the compiler will know dependencies from "include" statements and will build what is needed.
Exemples:
Type from the main scriptol directory:
./solc -bre demosfibo
Configuring:
By editing the solc.ini file, you may change the second pass compiler (you may have to rebuild the libsol library for this compiler), change the options of the compiler or add header files to include.
To add header files, just add "header=someheader.hpp" lines into the config file.
A xxx.cfg file may be written for each project main source beeing xxx, and if present, it overloads the solc.ini file.
Java Tetris 1.0
Java Tetris project is a simple Tetris game. more>>
Java Tetris is a game written with Eclipse and the VE Plugin. It is a nice starting point if you want to learn Java and Eclipse.
The game can be started as Java applet or Java application.
Enhancements:
- The dependency on jdom was removed.
- The jar is now only 30kb.
- A bug was fixed in the score list.
Java Network Stack 1.1
Java Network Stack provides a Java library for research oriented network programming. more>>
Java Network Stack is a library used by the DIMES project to create new internet measurements. It provides a clean API for packet manipulation, send, receive, filter, and analysis. It is a unification of raw socket capabilities, MAC level networkingm, and IPv6 capabilities.
Java + information flow 3.0
Java + information flow is a security-typed programming language that extends Java with support for information flow control. more>>
The source code for the Jif compiler and run-time system is now available for download. Jif is written in Java and is built using the Polyglot extensible Java compiler framework.
Static information flow control can protect the confidentiality and integrity of information manipulated by computing systems. The compiler tracks the correspondence between information the policies that restrict its use, enforcing security properties end-to-end within the system. After checking information flow within Jif programs, the Jif compiler translates them to Java programs and uses an ordinary Java compiler to produce secure executable programs.
Jif extends Java by adding labels that express restrictions on how information may be used. For example, the following variable declaration declares not only that the variable x is an int, but also that the information in x is governed by a security policy:
int {Alice→Bob} x;
In this case, the security policy says that the information in x is controlled by the principal Alice, and that Alice permits this information to be seen by the principal Bob. The policy {Alice←Bob} means that information is owned by Alice, and that Alice permits it to be affected by Bob. Based on label annotations like these, the Jif compiler analyzes information flows within programs, to determines whether they enforce the confidentiality and integrity of information.
Java EDF files viewer 2.0.1
Java EDF files viewer is a multi-platform EDF file viewer. more>>
Usage
1. You need the Java software installed.
2. To execute the viewer
- type in command line: java -jar jEDF.jar
Enhancements:
- This release has hypnogram scoring, montage creation, spectral analysis, EEG event scoring, and a bilingual interface (English/French).
Java-Gnome 4.0.3
Java-GNOME is a set of Java bindings for the GNOME and GTK libraries. more>>
The Java-Gnome API has been carefully designed to be easy to use, maintaining a good OO paridigm, yet still wrapping the entire functionality of the underlying libraries.
Java-Gnome can be used with the Eclipse development environment and Glade user interface designer to create applications with ease.
Java-Gnome is part of the official Gnome Bindings Release, commiting us to high quality regular releases.
Java VideoLan Client Bindings 0.0.9
Java VideoLan Client Binding lets you use the VideoLan multimedia player in any Java software. more>>
Main features:
- displays an original VideoLan Client
- using JVLCCanvas (extends java.awt.Canvas) or JVLCPanel (extends javax.swing.JPanel) is possible to embed VLC output in any application.
Enhancements:
- This release has a cleaner classes layout, and is more intuitive to use.
- Parts of the native interface have been rewritten, some memory leaks corrected.
- Upgrading is recommended.
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::Import 0.03
Java::Import is Perl module to use Java classes in Perl. more>>
SYNOPSIS
use Java::Import qw(
some.package.SomeClass
);
my $instance = new some.package.SomeClass();
$instance->someMethod();
my $ret_val = some::package::SomeClass::someStaticMethod();
$ret_val->someMethod();
$ret_val2 = $instance->someOtherMethod($ret_val);
$ret_val2->someMethod();
my $java_array_ref $instance->someMethod2();
foreach my $obj ( @$java_array_ref ) {
$obj->someMethod();
}
The purpose of this module is to provide a simple method for using Java classes from a Perl program while using the latest in Open Source Java Technology. Thus, this module makes great use of the GNU Compiler Tools for Java in its implimentation.
The Glasgow Haskell Compiler 6.6
The Glasgow Haskell Compiler is a compiler for Haskell 98. more>>
Main features:
- GHC supports the entire Haskell 98 language plus a wide variety of extensions.
- GHC works on several platforms including Windows and most varieties of Unix, and several different processor architectures. There are detailed instructions for porting GHC to a new platform.
- GHC has extensive optimisation capabilities, including inter-module optimisation.
- GHC compiles Haskell code either by using an intermediate C compiler (GCC), or by generating native code on some platforms. The interactive environment compiles Haskell to bytecode, and supports execution of mixed bytecode/compiled programs.
- Profiling is supported, both by time/allocation and various kinds of heap profiling.
- GHC comes with a wide range of libraries.
GHC is heavily dependent on its users and contributors. Please come and join the mailing lists and send us your comments, suggestions, bug reports and contributions!
Enhancements:
- SMP support and impredicative polymorphism were added.
- The libraries were split into core and extra.
- Many more changes were made.
FreeCell Java Applet 1.1
FreeCell Java Applet project is a Java applet of the popular FreeCell card game. more>>
This is a Java applet of the popular FreeCell card game.
FreeCell is the enormously popular solitaire game. Because all cards are visible at the start of the game, it is almost entirely a game of skill.
Almost all FreeCell positions can be won. The most notable exception is the game #11982.
Java::JVM::Classfile 0.19
Java::JVM::Classfile is a Perl module to parse JVM Classfiles. more>>
SYNOPSIS
use Java::JVM::Classfile;
my $c = Java::JVM::Classfile->new("HelloWorld.class");
print "Class: " . $c->class . "n";
print "Methods: " . scalar(@{$c->methods}) . "n";
The Java Virtual Machine (JVM) is an abstract machine which processes JVM classfiles. Such classfiles contain, broadly speaking, representations of the Java methods and member fields forming the definition of a single class, information to support the exception mechanism and a system for representing additional class attributes. The JVM itself exists primarily to load and link classfiles into the running machine on demand (performed by the Class Loader), represent those classes internally by means of a number of runtime data structures and facilitate execution (a role shared between the Execution Engine (which is responsible for execution of JVM instructions) and the Native Method Interface which allows a Java program to execute non-Java code, generally ANSI C/C++.
This Perl module reveals the information in a highly-compressed JVM classfile by representing the information as a series of objects. It is hoped that this module will eventually lead to a JVM implementation in Perl (or Parrot), or possibly a way-ahead-of-time (WAT) to Perl (or Parrot) compiler for Java.
It is important to remember that the Java classfile is highly-compressed. Classfiles are intended to be as small as possible as they are often sent across the network. This may explain the slightly odd object tree. One of the most important things to consider is the idea of a constant pool. All constants (constant strings, method names and signatures etc.) are clustered in the constant pool at the start of the classfile, and sprinkled throughout the file are references to the constant pool. The module attempts to hide this optimisation as much as possible from the user, however.