JCGO: Compiled Demos page

JCGO, a Java source to C code (java2c) translator, is an open-source software product developed and supported by Ivan Maidanski. With JCGO you could make your Java applications run faster, consume less system resources, harder to decompile and easier to deploy for the target platforms...

The following demo applications are converted from Java to C by JCGO.

1. Some speed benchmarks

filenameOSCPU C compiler Garbage Collector build command speed gain, times packed exe size, KiBcomment
GCBench.exeWin32x86MinGW BoehmGC[3626] 1.355  
CaffeineMarkEmbeddedApp.exeWin32x86 MinGWBoehmGC[3626]6 !!!60 GCC has much higher optimization level than JIT
scimark2.exeWin32x86MinGW -[3625]1.5560 
QSort.exeWin32x86MinGW -[3625]1.230 "quick-sort" benchmark

The download link: SpeedTests-win32.7z.


2. Hello world...

Some trivial console programs from the JCGO "examples" folder ("Empty1" - a do-nothing program just to show code size minimum; "ShowTZ" - shows the current GMT/local time and timezone/locale info).
filenameOSCPU C compiler Garbage Collector build command packed exe size, KiB
hello.exeWin32x86MinGW -[3613]13
hello.comDOSi8086Watcom -[2906]15
empty1.comDOSi8086Watcom -[2906]4.6
ShowTZ.exeWin32x86MinGW -[3612]140

The download link: HelloWorld-win32.7z.


3. Java System properties

"ShowProp" console sample program shows major Java system properties preset by the JCGO runtime depending on the execution environment.
filenameOSCPU C compiler Garbage Collector build command packed exe size, KiB
ShowProp.exeWin32x86MinGW -[3618]43
ShowProp-amd64.exeWin64amd64 mingw-w64-[3905]150
ShowProp-djgpp.exeDOSx86 DJGPP-[4310]105
ShowProp-dos16.exeDOSi8086 WatcomTinyGC[2903]85
ShowProp-linux-x86Linuxx86 GCC-[1009]50
ShowProp-linux-amd64Linuxamd64 GCC-[1307]55
ShowProp-freebsd-x86FreeBSDx86 GCC-[1506]50
ShowProp-solaris-amd64Solarisamd64 Sun CC-[1806]220

The tar-ball download link: ShowProp-bin.tar.gz.


4. Some third-party console single-threaded tools

"ProGuard" and "JavaCC" are two samples of mature console applications.
application download filenameOS CPUC compiler Garbage Collector build command exe size (unpacked), KiB application download size, MiB comment
proguard.exe Win32x86MinGWBoehmGC[3620] 11940.33 stand-alone console executable (ProGuard v4.5 beta2 Java class file optimizer and obfuscator); see source code
JavaCC-5_0-win32-jcgo.7z Win32x86MinGW -[3614] 10700.58 the complete JavaCC v5.0 binary distributive pack (containing javacc, jjdoc, jjtree executables); see source code


Disk footprint comparison: the size of "proguard" packed stand-alone executable file is even a bit smaller than the size of the optimized, obfuscated (and packed) "proguard.jar" file.

5. Third-party SWT applications

These samples are based on the Eclipse SWT v3.6M4 GUI toolkit.
application download filenameOS CPU SWT back-end build command exe size (unpacked), MiB application download size, MiB start-up RAM usage, MiB
tuxguitar-1_2-linux-x86-jcgo.tar.gz Linuxamd64gtk_64[1402] 6.06.86
tuxguitar-1_2-windows-x86-jcgo.7z Win64amd64win32_64[4002]5.6 5.620
Win32x86win32[3702]4.3 16
SWT_ControlExample-3_6M4-linux-x86-jcgo. Linuxamd64gtk_64[1401] 2.93.82
SWT_ControlExample-3_6M4-win32-jcgo.7z Win64amd64win32_64[4001]2.8 2.212
Win32x86win32[3701]2.2 5
SWT_GraphicsExample-3_6M4-win32-jcgo.7z Win64amd64win32_64[4001]1.5 1.78
Win32x86win32[3701]1.2 5


The translation commands:

Some of the above SWT (and console) demo applications are also listed on the third-party sites introducing the competitive technologies and products, like:

6. Third-party AWT applications using gtkpeer

Classpath "gtkpeer" AWT back-end is used for the following GUI applications.
application download filenameOS CPU build command exe size (unpacked), MiB application download size, MiB
J2dBenchmarkGUI-gtkpeer-linux-x86-jcgo.tar.gz Linuxamd64[5301]4.7 2.9


7. Third-party AWT applications using Sun J2SE

These applications are using Sun J2SE v1.4 AWT/Swing GUI front-end.
application download filenameOS CPU sun-AWT build command exe size (unpacked), MiB application download size, MiB start-up RAM usage, MiB
jEdit-4_2-win32-jcgo.7z Win32x86[106]6.64.617
JDK_DrawTest-win32-jcgo.7z Win32x86[107]1.81.14
JDK_Java2Demo-win32-jcgo.7z Win32x86[103]5.23.623
JDK_JavaSound-win32-jcgo.7z Win32x86[104]4.13.610
JDK_SwingSet2-win32-jcgo.7z Win32x86[105]4.94.737
JDK_SwingSet2-linux-x86-jcgo.tar.gz Linuxx86[305]5.07.04
JDK_SwingSet2-solaris-x86-jcgo.tar.gz Solarisx86[404]106.7 


8. Other projects using JCGO

Here are the links to some other projects that use JCGO to produce binary executables (see "Browse file for" or "Download" pages):