Onboard Java Compiler
To install a java vm , a compiler and runtime library.
Contents
Pre-requisites
Need to have these packages installed
task-native-sdk
opkg install task-native-sdk
Installation
As root or using sudo on a running gumstix with internet access.
If you don't have internet access on your gumstix, you can download the packages and copy them to the gumstix via usb drive. May take a few goes to get all the dependencies.
first add angstrom repo
echo 'src/gz angstrom-base http://www.angstrom-distribution.org/feeds/unstable/ipk/glibc/armv7a/base' > /etc/opkg/angstrom-base.conf
Install class path
opkg install classpath opkg install classpath-dev
If you need the graphical classes
opkg install classpath-gtk
If you are using graphical classes/gui remember to export the display
export DISPLAY=:0.0
Install cacao vm
opkg install cacao
Install jikes java compiler
opkg install jikes
Install phoneme jvm
If you need a java vm with debuging or remote debugging support or wish to use the phoneme jvm
wget http://bugcommunity.com/downloads/files/phoneme-advanced-personal-debug_mr2-r1_armv6.ipk opkg install -force-depends phoneme-advanced-personal-debug_mr2-r1_armv6.ipk
Once you have installed it add cvm to your path or create a symbolic link
cvm is in /usr/lib/jvm/phoneme-advanced-personal-debug/bin
sudo ln -s /usr/lib/jvm/phoneme-advanced-personal-debug/bin/cvm /usr/bin/cvm
Set the classpath for Jikes
Set the bootclass path so jikes can find the classes
export BOOTCLASSPATH=/usr/share/cacao/vm.zip:/usr/share/classpath/glibj.zip
Testing the install
Once everything is installed and you are ready to run.
Check the versions
Check the versions and that the jvm's run.
First cacao
alxx@omap1:~$ java -version java version "1.5.0" CACAO version 0.99.4 Copyright (C) 1996-2005, 2006, 2007, 2008 CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
alxx@omap1:~$ java -fullversion java full version "cacao-1.5.0"
or
alxx@omap1:~$ cacao -fullversion java full version "cacao-1.5.0" alxx@omap1:~$
Then phoneme
alxx@omap1:~$ java-cdc -version Product: phoneME Advanced (phoneme_advanced_mr2-b97) Profile: Personal Profile Specification 1.1 JVM: CVM phoneme_advanced_mr2-b97 (mixed mode) alxx@omap1:~$
or
alxx@omap1:~$ cvm -version Product: phoneME Advanced (phoneme_advanced_mr2-b97) Profile: Personal Profile Specification 1.1 JVM: CVM phoneme_advanced_mr2-b97 (mixed mode) alxx@omap1:~$
Compile HelloWorld
Then with the standard java hello world
vim Hello.java
/* Hello.java */ public class Hello { public static void main(String[] args) { System.out.println("Hello world!"); } }
Save then compile
alxx@omap1:~$ jikes Hello.java alxx@omap1:~$ ls Hello.class Hello.java
Run it using cacao
alxx@omap1:~$ java Hello Hello world! alxx@omap1:~$
or
alxx@omap1:~$ cacao Hello Hello world! alxx@omap1:~$
Run it using phoneme
alxx@omap1:~$ java-cdc Hello Hello world! alxx@omap1:~$
or
alxx@omap1:~$ cvm Hello Hello world! alxx@omap1:~$
Test phoneme using its provided testclasses.zip
alxx@omap1:~$cvm -cp /usr/lib/jvm/phoneme-advanced-personal-debug/testclasses.zip HelloWorld Hello world. alxx@omap1:~$
phoneme with some extra files can be used to run javascript , jython and servlets
see http://www.nslu2-linux.org/wiki/HowTo/UseJavaOnTheSlug