Showing posts with label planet-classpath. Show all posts
Showing posts with label planet-classpath. Show all posts

Saturday, March 13, 2021

Jainja JVM with Cosmopolitan Libc

Cosmopolitan Libc is a very interesting library which makes it possible to make an executable independent of the OS (but not of the architecture which must be x86)  
 
So I tried to compile Jainja JVM with this C library. It was pretty easy, apart from a few name collisions in headers.
 
There is now a JVM whose binary code works under Windows, Linux, xBSD and MacOS without recompilation !  

Cosmopolitan libc focuses on text-based user interfaces but AWT/Swing should work through X11 / TCP (not tested yet).

Monday, May 12, 2014

Jainja JVM on the Chrome Web Store

It was pretty easy to write a new graphical backend for Jainja using the Pepper Plugin API. So it's possible to write Java graphical user interfaces on NaCl now !

A demo is available on the Chrome Web Store.


Sunday, April 20, 2014

Jainja 0.8 released


Jainja is a JVM (Java Virtual Machine) written in Java. Focus is set on portability, not on performance. Jainja supports Java 1.5 features.

This release adds support for Minix, Haiku and Dart.

So Jainja currently works on Linux, Windows, xBSD, Minix, Haiku, Java SE, Android, GWT, and Dart

Wednesday, May 22, 2013

Jainja JVM on top of the Dart VM

I'm currently working on a new "platform" target for Jainja: Dart

I got some preliminary results but only simple applications are working at this stage.


Tuesday, November 22, 2011

Jainja VM

Jainja VM is a new JVM written in Java.

The VM can run on top of multiple environments : Java SE, Java ME, Android, Javascript, and even natively in a near future.

You can see Jainja in action in your browser (no Java plugin required, only a HTML5 browser): demo

Sources will be released during FOSDEM 2012.

Sunday, April 24, 2011

Android Activity

I succeeded to have a simple Activity working with pointer and keyboard events:

public class HelloAndroidActivity extends Activity {

    /** Called when the activity is first created. */
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);               
        TextView tv = new EditText(this);
        tv.setText("This is an EditText view in an AWT Window: \n");
        setContentView(tv);
    }
   



I can't go further without the Binder IPC system. It's an important piece of software in Android because almost all the public application framework relies on it to find and use services (window manager, audio, input methods, ...)


There is a temporary hack to replace the IPC system (for the graphical part only):


The current start process is:


Monday, April 18, 2011

Android Canvas in an AWT Window

A new small step: I got the Android Canvas working (only 2D rendering for now) :

 

Wednesday, July 29, 2009

LWUIT running on the Jelatine VM

Although the Jelatine VM is still a work in progress, I got simple user interfaces working on it.

I used the LWUIMB demo and a X11 backend.

Tuesday, March 31, 2009

MIDPath on the iPhone

I started a port of MIDPath on the iPhone a few weeks ago. It was a bit easier than I expected.

First I had to understand how to use iPhone APIs from Java. Markus Heberlings from the MicroEmulator project helped me a lot in this task. I used Markus's library (straptease) to write a simple backend for MIDPath.

Next I added a directional pad to give a chance to people with large fingers to navigate through complex user interfaces.

Finally, I improved overall performances by compiling native backends for rasterization and SVG rendering.

Currently MIDPath runs on top of JamVM 1.5.1/Classpath and performances are correct for productivity applications. It should be faster when the iPhone backend will use OpenGL ES.

Available features:
  • Full support of the MIDP2 widgets (LCDUI)
  • JSR226/SVG
  • JSR75/File Connection API
  • Networking
Missing:
  • Sound
In the video below, you can see a few midlets running on the iPhone:



http://www.youtube.com/watch?v=Z1jU3abjG4w