tq2440移植java虚拟机

来源:互联网 发布:mac 数据作图软件 编辑:程序博客网 时间:2024/05/22 04:42
a. 选用的是sun的phoneme
b. 下载
     https://phoneme.dev.java.net/上的phoneme_advanced-mr2-dev-src-b97-           20_nov_2008.zip
c. 解压源代码在linux host上
     unzip phoneme_advanced-mr2-dev-src-b97-20_nov_2008.zip
d. 修改makefile
    cd phoneme_advanced_mr2/cdc/build/linux-arm-generic

    vim GNUmakefile

    修改CVM_TARGET_TOOLS_PREFIX=/opt/eldk/usr/bin/arm-linux-                                                             为自己的编译器实际地址   

        修改 USE_AAPCS ?= false 为 true

e.修改 segvhandler_arch.c 文件 
      gedit ../../src/linux-arm/javavm/runtime/segvhandler_arch.c 
      修改 
      #define ucontext asm_ucontext 
      #include 
      为 
      //#define ucontext asm_ucontext     //注释掉这句 
      #include             //去掉asm/

f.  安装java虚拟机
            (1)phoneme编译出的java虚拟机是cvm在bin目录下
            (2)在arm linux的根文件系统里添加home/j2me目录
            (3)拷贝phoneme_advanced_mr2/cdc/build/linux-arm-generic

                下的bin,lib目录和testclasses.zip文件到arm linux的home/j2me目录                                         

     g. 测试嵌入式java虚拟机cvm      
             (1) cd /home/j2me
             (2) bin/cvm -cp testclasses.zip HelloWorld 可以看到HelloWorld的输出

                 bin/cvm -cp testclasses.zip Test 可以看到Test输出
                    bin/cvm -version可以看到cvm的版本
                    可以但到cvm在armlinux上运行正常

2. 使用jdk编写自己的j2me java应用       
      a. 下载j2sdk
          (1) http://java.sun.com/products/archive/
          (2) 选择J2SDK/J2RE-1.4.2_15 下载windows和linux两个版本
                 windows版本的用于在windows编写,编译,运行java应用 
                 linux版本的用于在linux编写,编译java应用,但是运行可以 

                  在linux下使用j2sdk运行, 也可以在arm linux上使用cvm运行

                  java应用
           (3) 下载后安装j2sdk
                    这里要澄清的一个事情是:
                   在windows和 linux上编译和运行java应用时都是需要j2sdk的,

                   但是在arm linux上运行java应用使用cvm而不是使用j2sdk里的

                   java,但是编写编译一样在windows或者是linux 主机上也就是

                    说java的应用在arm 运行但是编写和编译还是需要在windows

                     或者linux主机上完成的。
         (4) 配置sdk环境
              windows: 
              在系统环境变量里添加: JAVA_HOME= C:\j2sdk1.4.2_15
              CLASSPATH=.;%JAVA_HOME%\lib
              在系统路劲里加入:%JAVA_HOME%\bin;

              arm linux:
              在/etc/init.d/rcS文件里加入:
               JAVA_HOME=/home/j2me
               PATH=$JAVA_HOME/bin:$PATH
               CLASSPATH=.;$JAVA_HOME/lib

      b. 编写java应用
                    编写Hello.java文件
                    public class Hello{
                              public static void main (String args[]) {
                                     System.out.println ("Hello World!");
                              }
                     } 

      c. 编译
                     windows和linux都是运行
                      javac  Hello.java
                     生成Hello.class

      d. 运行
                      windows:  java  Hello
                      linux:    java  Hello
                      armlinux: cvm  Hello
                      应该可以看到Hello World!的输出了



0 0
原创粉丝点击