Main > Free Download Search >

Free java to native compiler software for linux

java to native compiler

Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 3309
Java Binary Enhancement Tool 3 R1

Java Binary Enhancement Tool 3 R1


Java Binary Enhancement Tool is a Java assembler, dissassembler, and binary editor. more>>
The Java Binary Enhancement Tool (JBET) is a general Java program analysis and manipulation tool. Existing class files can be disassembled, reassembled, or edited programmatically through the JBET API. JBET can also be used to create new Java class files from scratch. JBET uses a convenient internal representation of all the contents of Java binary (.class) files, allowing the user to edit the classes easily, in a structured manner.

JBET was developed as part of the DARPA Self-Protecting Mobile Agents project under the OASIS and Active Networks programs (contract number N66001-00-C-8602) in order to study automated software obfuscation.

The Java language was chosen for this project because of the (relative) ease of constructing binary editing tools provided by the large amount of type information present in the class files. Our two reports, the Obfuscation Techniques Evaluation Report, and the Obfuscation Report, are available from the download area. The obfuscation tool developed is not part of this release.

JBET was also used in the DARPA/AFRL Survivable Server project (contract number F30602-00-C-0183) to add additional security checks to the Java Standard Library. (The Java SecurityManager API does not support many desirable security checks, such as continued authorization of file accesses after opening.)

JBET was used to replace the native method references in the Java standard library with stubs that call a pluggable security policy. This tool, called Jpolicy, is also available for download at this website. Jpolicy is very incomplete at this time, but may be interesting to those working in Java security or changing the standard library themselves.

The internal representation of Java class files used by JBET is intented to make it easy for programmers to write Java binary code transforms. Each element of Java class files has a corresponding internal data structure: ClassInfo for entire classes, MethodInfo for methods, FieldInfo for fields, Snippit for code blocks, and Instruction for individual instructions. Snippit and Instruction understand Java opcode syntax and semantics, allowing automated creation of valid Java programs. A Java-compatible class verifier is also included.

Some code transforms are difficult to program directly by manipulating Java instructions. For those transforms, a directed acyclic graph (DAG) representation of code is available. In the DAG representation, each basic block has a corresponding DAG, with a set of input and output nodes. Edges in the graph connect "producer" nodes (such as constants, or the result of calculations) to "user" nodes (such as method calls or other calculations). Methods are divided into basic blocks and control flow is stored at the basic block level (possible because Java has only fixed jump targets)

JBET requires a Java 1.4 virtual machine to run, although it can operate on class files from earlier Java versions. The packaging and build environment supplied supports Linux and Windows with Cygwin; however, the build process is simple and could be performed manually on other platforms. Perl is required for regression testing.

Jpolicy requires a Java 1.4 virtual machine to build, either Linux or Windows NT/XP with Cygwin. gcc is required for building on Windows (supplied with Cygwin). The runtime system can be either Java 1.3 or 1.4 (with Suns JVM only), running on Linux or Windows NT/XP. Windows 9x and Windows 2000 may work as well, but have not been tested.

Installation

1. Install jdk 1.4.1.
2. Set CLASSPATH to jdk1.4.1/jre/lib/rt.jar
3. cd src; make
4. If that didnt work, examine the makefile. java or javac may not be in the path.
5. To build a jar file that can be used with "java -jar jbet.jar", run "make jar".
6. If you have perl installed, run the tests with "make test".
Optionally, run "make regen; make test".

Make a symbolic link from jbet3/bin/jbet to somewhere in your path.

Usage

JBET uses the JNI format for class names, and JNI type and method descriptors. For a summary of this syntax, use jbet help syntax. Suns JVM specification may also be helpful.

To look at a class disassembly, use jbet print. Try disassembling a class you have source for, and was built with debug info (-g): jbet -P < classpath > print < classname >. Suns JVM specification has an instruction reference.
<<less
Download (0.19MB)
Added: 2005-03-07 License: BSD License Price:
1697 downloads
Java Brainfuck Compiler 2.0

Java Brainfuck Compiler 2.0


Java Brainfuck Compiler is an optimising Brainfuck to Java bytecode compiler. more>>
The Java Brainfuck Compiler is a compiler for the uniquely powerful Brainfuck language, which produces Java bytecode that will run on any Java Virtual Machine (with no intermediate steps such as going by way of Java code).

<<less
Download (0.010MB)
Added: 2005-04-18 License: GPL (GNU General Public License) Price:
1682 downloads
SJPT: Simple Java Parsing Toolkit

SJPT: Simple Java Parsing Toolkit


SJPT: Simple Java Parsing Toolkit is a simple Java parser toolkit. more>>
SJPT is parsing toolkit that supports both top-down (LL(1) and Simple Precedence) and bottom-up parsing (LR(0), SLR(1), LR(1) and LALR(1)).

The toolkit also supports generating Java parsers for all the bottom-up parsing methods, based on a CUP definition (similar to Yacc and CUP, but not restricted to LALR parsers only). I worked alone on this project for the laboratory on Compilers.

SJPT is free software under the terms of the GNU GPL.
<<less
Download (0.26MB)
Added: 2005-04-22 License: GPL (GNU General Public License) Price:
1650 downloads
Secure Java Diary 0.3.0a

Secure Java Diary 0.3.0a


Secure Java Diary is a Java Diary with Strong Encryption. more>>
Secure Diary is a Java application that uses the Bouncy Castle JCE to provide strong encryption for your diary.

It stores the entries using blowfish and triple DES. It allows you to enter/view/export diary enteries in multiple diaries.
<<less
Download (0.82MB)
Added: 2005-04-26 License: GPL (GNU General Public License) Price:
1649 downloads
asm2class 0.1.2

asm2class 0.1.2


asm2class is an assembly Java to class file compiler. more>>
Asm2class is a java assembly to class file compiler.

Asm2class is release under the terms of the GPL License. The current version of asm2class (0.1.2) is a beta version and allow generating class file from java assembly file that contains class definition, field definition, method definition and constructor definition.

This release support also abstract class, abstract method and native method definition.

Asm2class know more thatn 90% of the java assembly language. Asm2class can do dead code detection, uninitialized register detection.
<<less
Download (1.17MB)
Added: 2005-04-22 License: GPL (GNU General Public License) Price:
1646 downloads
joeq virtual machine 20030812

joeq virtual machine 20030812


joeq virtual machine is a language-independent Java virtual machine implemented in Java. more>>
Joeq is a virtual machine and compiler infrastructure designed to facilitate research in virtual machine technologies such as Just-In-Time and Ahead-Of-Time compilation, advanced garbage collection techniques, distributed computation, sophisticated scheduling algorithms, and advanced run time techniques.
Joeq is entirely implemented in Java, leading to reliability, portability, maintainability, and efficiency. It is also language-independent, so code from any supported language can be seamlessly compiled, linked, and executed -- all dynamically.
Each component of the virtual machine is written to be independent with a general but well-defined interface, making it easy to experiment with new ideas.
Joeq is released as open source software, and is being used as a framework by researchers on five continents on topics ranging from automatic distributed virtual machines to whole-program pointer analysis.
Joeq is a virtual machine and compiler infrastructure designed to be a platform for research in compilation and virtual machine technologies. We had three main goals in designing the system. First and foremost, we wanted the system to be flexible. We are interested in a variety of compiler and virtual machine research topics, and we wanted a system that would not be specific to researching a particular area.
For example, we have interest in both static and dynamic compilation techniques, and in both type-safe and unsafe languages. We wanted a system that would be as open and general as possible, without sacrificing usability or performance.
Second, we wanted the system to be easy to experiment with. As its primary focus is research, it should be straightforward to prototype new ideas in the framework. With this in mind, we tried to make the system as modular as possible, so that each component is easily replaceable. Learning from our experience with Jalapeno, another virtual machine written in Java, we decided to implement the entire system in Java.
This makes it easy to quickly implement and prototype new ideas, and features like garbage collection and exception tracebacks ease debugging and improve productivity. Java, being a dynamic language, is also a good consumer for many of our dynamic compilation techniques; the fact that our dynamic compiler can compile the code of the virtual machine itself means that it can dynamically optimize the virtual machine code with respect to the application that is running on it. Javas object-oriented nature also facilitates modularity of the design and implementation.
Third, we wanted the system to be useful to a wide audience. The fact that the system is written in Java means that much of the system can be used on any platform that has an implementation of a Java virtual machine. The fact that Joeq supports popular input languages like Java, C, C++, Fortran, and even x86 binary code increases the scope of input programs. We released the system on the SourceForge web site as open source under the Library GNU Public License.
It has been picked up by researchers on five continents for various purposes, among them: automatic extraction of component interfaces, static whole-program pointer analysis, context-sensitive call graph construction, automatic distributed computation, versioned type systems for operating systems, sophisticated profiling of applications, advanced dynamic compilation techniques, system checkpointing, anomaly detection, secure execution platforms and autonomous systems. In addition, Joeq is now used as the basis of the Advanced Compilation Techniques class taught at Stanford University.
Joeq supports two modes of operation: native execution and hosted execution. In native execution, the Joeq code runs directly on the hardware. It uses its own run-time routines, thread package, garbage collector, etc. In hosted execution, the Joeq code runs on top of another virtual machine. Operations to access objects are translated into calls into the reflection library of the host virtual machine.
The user code that executes is identical, and only a small amount of functionality involving unsafe operations is not available when running in hosted execution mode. Hosted execution is useful for debugging purposes and when the underlying machine architecture is not yet directly supported by Joeq. We also use hosted execution mode to bootstrap the system and perform checkpointing, a technique for optimizing application startup times.
Joeq system consists of seven major parts:
- Front-end: Handles the loading and parsing of input files, such as Java class files, SUIF files, and binary object files.
- Compiler: A framework for performing analyses and optimizations on code. This includes the intermediate representation (IR) of our compiler.
- Back-end: Converts the compilers intermediate representation into native, executable code. This code can be output to an object file or written into memory to be executed. In addition, it generates metadata about the generated code, such as garbage collection maps and exception handling information.
- Interpreter: Directly interprets the various forms of compiler intermediate representations.
- Memory Manager: Organizes and manages memory. Joeq supports both explicitly-managed and garbage-collected memory.
- Dynamic: Provides profile data to the code analysis and optimization component, makes compilation policy decisions, and drives the dynamic compiler.
- Run-time Support: Provides runtime support for introspection, thread scheduling, synchronization, exception handling, interfacing to external code, and language-specific features such as dynamic type checking.
<<less
Download (1.0MB)
Added: 2005-04-22 License: LGPL (GNU Lesser General Public License) Price:
1645 downloads
JamVM 1.3.1

JamVM 1.3.1


JamVM is a compact Java Virtual Machine. more>>
JamVM is a new Java Virtual Machine which conforms to the JVM specification version 2 (blue book). In comparison to most other VMs (free and commercial) it is extremely small, with a stripped executable on PowerPC of only ~130K, and Intel 100K.
However, unlike other small VMs (e.g. KVM) it is designed to support the full specification, and includes support for object finalisation, the Java Native Interface (JNI) and the Reflection API.
Main features:
- Uses native threading (posix threads). Full thread implementation including Thread.interrupt()
- Object references are direct pointers (i.e. no handles)
- Supports class loaders
- Efficient thin locks for fast locking in uncontended cases (the majority of locking) without using spin-locking
- Two word object header to minimise heap overhead (lock word and class pointer)
- Execution engine supports basic switched interpreter and threaded interpreter, to minimise dispatch overhead (requires gcc value labels)
- Stop-the-world mark and sweep garbage collector
- Thread suspension uses signals to reduce suspend latency and improve performance (no suspension checks during normal execution)
- Full object finalisation support within the garbage collector (with finaliser thread)
- Garbage collector can run synchronously or asynchronously within its own thread
- String constants within class files are stored in hash table to minimise class data overhead (string constants shared between all classes)
- Supports JNI and dynamic loading for use with standard libraries
- Uses its own lightweight native interface for internal native methods without overhead of JNI
- JamVM is written in C, with a small amount of platform dependent assembler, and is easily portable to other architectures.
Enhancements:
- Re-worked thread suspension enable/disable code
- implemented a fast enable/disable suspend mechanism for critical code sections, which is now used in hash table access and heap allocation :
- much faster object allocation
- much faster primitive array allocation
- faster string interning
- removed some minor potential (as yet unseen) race conditions
- Integrated all outstanding patches
- generics branch patch, implementing VMClass.isEnum(), isAnnotation() and isSynthetic()
- Boot library path patch (support for system property gnu.classpath.boot.library.path)
- Enabled different min/max heap values for each architecture
- ARM values are back to the defaults for JamVM 1.2.5. Default max heap of 128Mb is too large for typical embedded ARM systems.
- Fixed the new compiler warnings from gcc-4.0 (under Mac OS X) related to char/signed char usage.
- Fixed compiler error on gcc-4.0 under Mac OS X 10.4 (duplicate definitions of wait).
- Fixed rare, potential dead-lock in direct.c when preparing methods
- Fixed a bug in VMClassLoader.defineClass(), where offset or length is wrong.
- Fixed bug in DCONST_1 on mixed-endian ARM architectures (this bug was fixed in JamVM 1.2.2 but it crept back in, due to the new interpreter in JamVM 1.2.5).
- Improved thread dump (produced via SIGQUIT, or ctrl-).
- Several other minor bug-fixes, and code tidy-ups.
<<less
Download (0.23MB)
Added: 2005-06-17 License: GPL (GNU General Public License) Price:
1593 downloads
Vexi 0.92

Vexi 0.92


Vexi is a visual, extensible, XML interfaces. more>>
Vexi is a Visual, Extensible, XML Interfaces.

Vexi is written in Java, but compiled into native binaries using GCJ and are combined with launchers that work natively in popular web browsers.

<<less
Download (0.85MB)
Added: 2005-10-12 License: GPL (GNU General Public License) Price:
1472 downloads
Scriptol to binary Compiler

Scriptol to binary Compiler


Scriptol to binary Compiler is a C++ native compiler. more>>
Scriptol to binary Compiler is a C++ native compiler.

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.
<<less
Added: 2005-12-02 License: Freeware Price:
1423 downloads
Scriptol to Php Compiler

Scriptol to Php Compiler


Scriptol to Php Compiler is a scriptol program that may be interpreted by the Php interpreter. more>>
Scriptol to Php Compiler is a scriptol program that may be interpreted by the Php interpreter and it may be also compiled either to C++ or directly as an executable.

The Php interpreter is required by solp (download it at www.php.net or get it on the Scriptol CD).

Installation:

It is better to install Scriptol at root of a disk, for example:
/home/user/scriptolp

Once the archive is extracted into the scriptolp directory, you have just to go to this directory from the console to run the compiler.

To use the compiler at command line from any directory, you have to put the compilers into the path, in the usr directory for exemple, or any directory assigned to the path variable (see .bashrc or equivalent). You may also add the scriptol directory to list of paths. Before to use the compiler, you have to read the licence, in the doc directory: licence.html.

Usage:

Type the source of your program in a text editor and save it as mysource.sol or any other name with the sol extension.

Then just type:

./solp mysource

To know the compilers options, type solp without argument, at command line.

Examples:

Type from the main scriptol directory:
./solp demos/helloyou
<<less
Download (0.29MB)
Added: 2005-12-02 License: Freeware Price:
1421 downloads
CleanSheets 1.4b

CleanSheets 1.4b


CleanSheets is a spreadsheet application that is both extensible and platform-independent. more>>
CleanSheets is a spreadsheet application for the Java platform.

It features a formula language that closely resembles that of Microsoft Excel, and extensions for aiding end-user programmers in developing correct spreadsheets.

The application is written in Java, and relies on ANTLR for generating the formula compiler and the JFC/Swing JTable component for spreadsheet visualization.

<<less
Download (MB)
Added: 2005-12-07 License: GPL (GNU General Public License) Price:
1418 downloads
Java for C++ 0.4

Java for C++ 0.4


Java for C++ is a tool to generate C++-wrapper-classes for existing Java-classes. more>>
Java for C++ is a tool to generate C++-wrapper-classes for existing Java-classes. This tool reads a list of Java class names and creates source code for C++-classes to wrap them.
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.
<<less
Download (0.043MB)
Added: 2005-12-22 License: GPL (GNU General Public License) Price:
1404 downloads
Intel C++ Compiler 10.0

Intel C++ Compiler 10.0


Intel C++ Compiler application is a full fledged C/C++ compiler and debugger suite. more>>
Intel C++ Compiler application is a full fledged C/C++ compiler and debugger suite. Its aim is to provide outstanding performance for all Intel 32-bit and 64-bit processors, while not requiring the need for porting applications from other compilers.

It provides optimization technology, threaded application support, and features to take advantage of Hyper-Threading technology. It is substantially source and object code compatible with GNU C, providing fullest compatibility with GCC and G++ 3.x/4.x both in terms of code and of API. It is thereby also easy to integrate with existing development environments.

<<less
Download (MB)
Added: 2007-06-28 License: Free for non-commercial use Price:
1400 downloads
JD4X 0.6

JD4X 0.6


JD4X is a Java desktop environment for Linux. more>>
JD4X project is a basic GUI Windowing Environment developed to support the Java Programming Language based on top of the X Window system. It was developed with the intention of providing a Java environment that allows Java programmers to build and extend a windowing system purely in Java. However, the project itself is not pure Java and uses a mixture of Java and C.

JD4X is targeted at the hobbyist programmers who desire to put their skills to the test by customizing a desktop of their own. To do this, the JD4X project sets out to provide a native structural foundation that gives them a greater degree of control over their desktop, JVMs and Java classes that runs on the Linux X Window system, thereby giving the Java programmer full control of their desktop environment.

The project also targets Java users who may desire a Java enabled and component based desktop without excluding other native applications already found on their Linux distribution. It does this by also providing a default windowing desktop to cater to the end users who can select a mixture of native and Java applications that they like on their desktop without having to differentiate between them and the way they are executed.

In general, JD4X aims to isolate the underlying platform system to the background and provide a fully Java GUI front end. JD4X is not about a Java only desktop. It is about empowering the Java user and programmer such that the Java desktop will meet their particular needs.

<<less
Download (17MB)
Added: 2006-02-01 License: GPL (GNU General Public License) Price:
1360 downloads
JJack 0.2

JJack 0.2


JJack is a framework for the Java programming language that allows creating and running audio processor clients. more>>
JJack is a framework for the Java programming language. JJack allows creating and running audio processor clients for the JACK Audio Connection Kit:

- Uses Java to create audio processors (effects processors, synthesizers etc.).
- Provides a JavaBeans-compatible event mechanism to interconnect audio processors.

Native bridge code uses new java.nio.ByteBuffer for direct memory access from Java.

Installation:

Unpack the distribution archive jjack-0_2.tgz to /usr/java. A directory /usr/java/jjack_0-2 will be created. You can also choose a different directory, in that case the absolute path values in the shell-scripts bin/jjack.sh and bin/runBeanBuilder.sh need to be adopted to your choice.

The native bridge library libjjack.so (on Linux systems) needs to be accessible by the Java Virtual Machine (JVM).

There are two ways to make sure the JVM can load the native bridge library:

- Copy the file /lib/ / /* to the systems default library path. On Linux:

cp ./lib/i386/linux/libjjack.so /usr/lib/

Alternatively create a filesystem-link to the binary file at the systems default library location:

cd /usr/lib
ln -s < jjack-install-dir >/lib/i386/linux/libjjack.so

- Or the library-path can directly be set through the JVM system property "java.library.path". Add the parameter "-Djava.library.path=< jjack-install-dir >/lib/i386/linux" to the invocation command.

Note: The current version includes a pre-compiled binary library for i386-Linux. To run JJack on different platforms, the source files libjjack.c and libjjack.h need to be compiled on your system. Please send a copy of the binary and a description of your compilation process if you succeed in running JJack on different platforms.

Before using JJack, dont forget to start the JACK daemon. This is either done by manually invoking jackd, or by configuring the system to start up jackd at boot time. There are several alternative ways to configure and run the daemon, see the JACK user documentation for details (http://www.djcj.org/LAU/jack/).
<<less
Download (5.1MB)
Added: 2006-02-10 License: GPL (GNU General Public License) Price:
1351 downloads
Secleted [ 0 ] software to compare
  • Page: 1 of 5
  • 1
  • 2
  • 3
  • 4
  • 5