KVM for Linux Installation

Note: This is a historical document. Please use the latest J2ME release from Sun since the Linux patch is now included.

  1. Get the KVM 1.0 FCS and the Palm overlay from java.sun.com.

  2. Unpack the basic J2ME archive:
        $ unzip /home/ftp/pub/java/sun/j2me_cldc/j2me_cldc-1_0-src-winsol.zip
        Archive:  /home/ftp/pub/java/sun/j2me_cldc/j2me_cldc-1_0-src-winsol.zip
           creating: j2me_cldc/
           creating: j2me_cldc/jam/
           creating: j2me_cldc/jam/src/
          inflating: j2me_cldc/jam/src/jamParse.c  
          inflating: j2me_cldc/jam/src/jamStorage.c  
          [...]
          inflating: j2me_cldc/bin/kvm.exe   
          inflating: j2me_cldc/bin/kvm_j.exe  
          inflating: j2me_cldc/bin/preverify.exe  
    

  3. Change into the J2ME path and unpack the Palm overlay and overwrite all conflicting files:
        $ cd j2me_cldc
        $ unzip /home/ftp/pub/java/sun/j2me_cldc/j2me_cldcc-1_0-src-palm_overlay.zip 
        Archive:  /home/ftp/pub/java/sun/j2me_cldc/j2me_cldc-1_0-src-palm_overlay.zip
           creating: api/src/com/sun/cldc/io/palm/
           creating: api/src/com/sun/cldc/io/palm/storage/
           [...]
           creating: api/src/com/sun/cldc/io/palm/https/
          inflating: api/src/com/sun/cldc/io/palm/https/Protocol.java  
        replace api/Makefile? [y]es, [n]o, [A]ll, [N]one, [r]ename: A
          inflating: api/Makefile            
           creating: bin/api/classes/com/sun/cldc/io/palm/
           creating: bin/api/classes/com/sun/cldc/io/palm/storage/
          inflating: bin/api/classes/com/sun/cldc/io/palm/storage/Protocol.class  
          [...]
          inflating: tools/palm/Makefile     
          inflating: tools/jcc/nativeFunctionTablePalm.c  
          inflating: tools/jcc/nativeRelocationPalm.c  
          inflating: tools/jcc/Makefile    
    

  4. Change into the KVM source path and apply the KVM linux patch:
        $ cp /home/aheilwag/java/XPTools/html/dist/J2ME-CLDC-linux-1.4.patch.zip .
        $ unzip J2ME-CLDC-linux-1.4.patch.zip 
        Archive:  J2ME-CLDC-linux-1.4.patch.zip
          inflating: J2ME-CLDC-linux-1.4.patch  
        $ patch -p1 < J2ME-CLDC-linux-1.4.patch
        patching file Makefile
        patching file Makefile.inc
        patching file README.linux
        [...]
        patching file tools/preverifier/src/sys_api.h
        patching file tools/preverifier/src/sysmacros_md.h
        patching file tools/preverifier/src/typedefs_md.h
    

  5. From the KVM source path run make
        $ make
    
        Select the operating system by issuing one of the
        following commands:
            make solaris
            make linux
            make win32
    
        $ make linux
        cd build/linux; make all
        make[1]: Entering directory /tmp/j2me_cldc/build/linux'
        make LOOP TARGET=all
        make[2]: Entering directory /tmp/j2me_cldc/build/linux'
        >>>Recursivly making ../../tools/preverifier/build/linux all...
        make[3]: Entering directory /tmp/j2me_cldc/tools/preverifier/build/linux'
        cc -c -I../../src -DUNIX -DLINUX -DJAVAVERIFY -DTRIMMED -Di386  ../../src/check_class.c
        cc -c -I../../src -DUNIX -DLINUX -DJAVAVERIFY -DTRIMMED -Di386  ../../src/main.c
        cc -c -I../../src -DUNIX -DLINUX -DJAVAVERIFY -DTRIMMED -Di386  ../../src/utf.c
        cc -c -I../../src -DUNIX -DLINUX -DJAVAVERIFY -DTRIMMED -Di386  ../../src/check_code.c
        [...]
    

  6. You can test the compiled palm applications by changing into the samples directory and executing

    sh ku <classname>

    e.g.

    sh ku Dragon

    © 2001 A. Heilwagen