zoukankan      html  css  js  c++  java
  • 测试phoneme advance(DirectFB)运行环境

    测试phoneme advance(DirectFB)运行环境

    转载时请注明出处和作者联系方式
    作者联系方式:李先静 <xianjimli at hotmail dot com>

    在上文中,我们顺利完成了phoneme advance的编译,我对phoneme了解不多,怎么验证JVM否工作正常呢?对于JAVA程序员来说,这只是小事一桩,呵,对我来说,却是高深得不得了。花了好长时间才折腾出来,这里做点笔记,供下一个JAVA盲参考。

    1. 先设置环境变量

      export PREFIX=/usr/local

      export JDK_DIR=/usr/share/j2sdk1.4.2_15

      export PATH=$JDK_DIR/bin:$PREFIX/java/cdc/bin:$PREFIX/java/cdc/midp/midp_linux_fb_gcc/bin/i386 :$PATH


    1. 测试CVM

    • 先写个最简单的HelloWorld程序,文件名为HelloWorld.java


    class HelloWorld
    {
        
    public static void main(String argv[])
        
    {
            System.out.println(
    "HelloWorld");
        }

    }
    ;
    • 再写个Makefile

    JFLAGS=-bootclasspath $(PREFIX)/java/cdc/btclasses:$(PREFIX)/java/cdc/midp/midp_linux_fb_gcc/classes

    .SUFFIXES: .class .java
    .java.class:
        javac $(JFLAGS) $
    <

    all
    : HelloWorld.class

    clean
    :
        rm 
    -*.class *.jar

    这里要设置好bootclasspath,让它能连接phonemeclass

    • 编译

        make

    • 运行

        cvm HelloWorld

    (顺利的话,会打印出HelloWorld)

    1. 测试MIDlet

    • 先写个最简单的HelloWorld程序,文件名为HelloWorld.java

    import javax.microedition.midlet.MIDlet;
    import javax.microedition.lcdui.Command;
    import javax.microedition.lcdui.CommandListener;
    import javax.microedition.lcdui.Display;
    import javax.microedition.lcdui.Displayable;
    import javax.microedition.lcdui.Form;

    public class HelloWorld extends MIDlet implements CommandListener
    {
       
    private Form form;

       
    public HelloWorld()
       
    {
          form 
    = new Form("Test App");
          form.append(
    "Hello World!");
          form.addCommand( 
    new Command( "Exit", Command.EXIT, 1 ) );
          form.setCommandListener( 
    this );
       }


       
    public void startApp()
       
    {
          Display display 
    = Display.getDisplay(this);
          display.setCurrent( form );
       }


       
    public void pauseApp()
       
    {
       }


       
    public void destroyApp(boolean unconditional)
       
    {
          form 
    = null;
       }


       
    public void commandAction(Command c, Displayable d)
       
    {
          destroyApp(
    true);
          notifyDestroyed();
       }

    }
    • 再写个META-INF/MANIFEST.MF

    Manifest-Version: 1.0 
    MIDlet
    -Name: HelloWorld 
    MIDlet
    -1: HelloWorld,/icon.png,HelloWorld 
    MIDlet
    -Version: 1.0 
    MIDlet
    -Vendor: Li XianJing 
    MIDlet
    -Icon: /icon.png 
    MicroEdition
    -Profile: MIDP-1.0 
    MicroEdition
    -Configuration: CLDC-1.0 
    • 再写个Makefile

      JFLAGS=-bootclasspath $(PREFIX)/java/midp/classes:$(PREFIX)/java/cdc/btclasses

      .SUFFIXES: .
      class .java
      .java.
      class:
          javac $(JFLAGS) $
      <

      all: HelloWorld.
      class
          zip HelloWorld.jar HelloWorld.
      class META-INF/MANIFEST.MF

      clean:
          rm 
      -*.class *.jar

    • 修改DirectFB的配置/etc/directfbrc

      system=sdl

      mode=240x320

    • 安装midlet

      installMidlet file:////root/work/java/test/midlet/HelloWorld.jar

      (好像只有绝对路径才可以)

      安装之后,屏幕上会打印出该midletID,在运行和卸载时需要它。

    • 运行midlet

        runMidlet 2 HelloWorld

    (这里的2就是前面安装的ID,正常的话会有图形窗口出来)

    • 卸载midlet

        removeMidlet 2

    窗口的宽度和高度可以修改相应的constants.xml文件,在编译时该文件用来产生头文件 midp_constants_data.h

    ~~end~~

     

  • 相关阅读:
    win10安装mongodb教程及其失败解决方案
    基于TypeScript的NodeJs框架:NestJs开发博客API (node.js+nest.js)
    Webpack性能改造之CDN
    44道JavaScript送命题
    electron-vue学习手册
    万字长文带你深度解锁Webpack(进阶篇)
    4W字长文带你深度解锁Webpack系列(上)
    devexpress GalleryControl 获得选中的item并删除
    c# 任意角度旋转图片
    .net core3.1连接GBase数据库的步骤
  • 原文地址:https://www.cnblogs.com/zhangyunlin/p/6167675.html
Copyright © 2011-2022 走看看