JCGO (pronounced as "j-c-go") is a unique tool to convert Your Java application code to a platform-independent C code...

What is JCGO?

JCGO is an Open Source software product which translates programs written in Java into platform-independent C code, which could, further, be compiled (by third-party tools) into highly-optimized native machine code for the target platform and deployed.

JCGO is a powerful solution that enables your desktop, server-side and embedded/mobile/wireless Java applications to take full advantage of the underlying hardware. In addition, JCGO effectively protects your intellectual property by making your programs when compiled to native code as hard to reverse engineer as if they were written in C/C++.

The JCGO translator uses some optimization algorithms that allow, together with optimizations performed by a C compiler, the resulting executable code to reach better performance if compared with the traditional Java implementations (based on the Just-In-Time technology). The produced executable does not contain nor require a Java Virtual Machine to execute, so its resource requirements are smaller than that required by a typical Java VM. This also simplifies the process of deployment and distribution of an application. In addition, the produced native code is highly resistant to reverse engineering and tampering.

Scope of applicability...

The JCGO project is targeted mainly for the following user categories:

  1. application software developers:
    • to get higher performance, smaller memory footprint and smaller start-up time for an application,
    • to protect the code as an intellectual property,
    • to allow an application to execute on platforms without the Java VM support,
    • to simplify deployment, distribution and installation of an application,
    • to apply time-proven and well-known C/C++ compilation and debugging tools to a Java application;
  2. hardware device developers:
    • to migrate from C device code to Java,
    • to write new device code in Java with nearly the same performance efficiency as in C,
    • to use Java for 8- and 16-bit CPUs with ROM-able code and small amount of RAM,
    • to reuse existing Java code for small device programming;
  3. software porters (to execute existing applications on platforms without a Java VM support);
  4. software advanced users (to get higher performance for frequently used applications, to run an application in the 64-bit mode).

JCGO basic blocks...

JCGO consists of the following parts:

For more technical information about the JCGO, please look into the accompanying manual, FAQ.

What is Not JCGO?

JCGO is not for:

Licensing and support policy...

JCGO is an Open Source project released under the terms of GNU Classpath license.

JCGO could be used in a commercial project. There are no runtime fees.