Home / Java Patterns and Pitfalls     frequal.com

First Look at Running a Java App on the OLPC XO Laptop

Installing a JRE

This page says that Sun's regular x86 Linux JRE can be installed. I think the non-RPM self-extracting file option is the easiest:
cd /usr/local
mkdir java
cd java
chmod a+x jre-1_5_0_11-linux-i586.bin

Test Your Install

Check the JVM version from Terminal:
java -version

Run a Test App

JBook is a good test application. Download the latest version. Then start it from Terminal:
java -jar jbook.jar
It should appear on screen. However, it currently shows up as a gray screen. Hitting tab a couple of times and then the spacebar will bring up a dialog, which looks correct, but the main book display doesn't appear.

Update: If you press the "Rotate" button (on the left side of the screen), the app will resize to fill the screen and you can see it normally. JBook runs nicely full-screen in bright sunlight.

AWT applications like OrderedLife show up correctly, albeit at their default resolution. The rotate trick makes them show up full-screen as well. The default font is somewhat small, however.

Sugarizing a Java GUI -- A Quick Dusting

A well-behaved application on the XO Laptop interacts with the Sugar environment to support icon display in the ring, suspend and restart, and more. The act of taking a normal X11 app (like any Java AWT or Swing GUI) and making it a good citizen in the Sugar environment is known as Sugarizing.

The easiest way to Sugarize an existing application appears to be to write a small python app that uses the Sugar library, and have that app launch the existing application. So for example with JBook the python app would run "java -jar jbook.jar". The python app is responsible for taking Sugar messages and forwarding them to the Java app.

It should be possible with minimal effort to make a Python Activity which can run any GUI Java app with a tiny configuration change. The Java application would only be minimally Sugarized, but at least it would appear in the "Ring" and honor shutdown requests.

Very Sweet Java -- The Future of Pure Java Sugar Integration

There is no reason the functionality of the python Sugar library couldn't be made available as a Java class library. Then a Java application would be Sugarized by making use of the Java library, no Python needed. This level of integration would make a Java app be a full-fledged Sugar citizen and indistinguishable from all of the Sugar apps shipping bundled with the XO.

Other XO information

Some other sites with XO information:

Last modified on 16 Mar 2008 by AO

Copyright © 2014 Andrew Oliver