测试phoneme advance(DirectFB)运行环境
转载时请注明出处和作者联系方式
作者联系方式:李先静 <xianjimli at hotmail dot com>
在上文中,我们顺利完成了phoneme advance的编译,我对phoneme了解不多,怎么验证JVM是否工作正常呢?对于JAVA程序员来说,这只是小事一桩,呵,对我来说,却是高深得不得了。花了好长时间才折腾出来,这里做点笔记,供下一个JAVA盲参考。
-
先设置环境变量
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
-
测试CVM。
-
先写个最简单的HelloWorld程序,文件名为HelloWorld.java。
{
public static void main(String argv[])
{
System.out.println("HelloWorld");
}
};
-
再写个Makefile
.SUFFIXES: .class .java
.java.class:
javac $(JFLAGS) $<
all: HelloWorld.class
clean:
rm -f *.class *.jar
这里要设置好bootclasspath,让它能连接phoneme的class。
-
编译
make
-
运行
cvm HelloWorld
(顺利的话,会打印出HelloWorld)
-
测试MIDlet。
-
先写个最简单的HelloWorld程序,文件名为HelloWorld.java。
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
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 -f *.class *.jar -
修改DirectFB的配置/etc/directfbrc。
system=sdl
mode=240x320
-
安装midlet
installMidlet file:////root/work/java/test/midlet/HelloWorld.jar
(好像只有绝对路径才可以)
安装之后,屏幕上会打印出该midlet的ID,在运行和卸载时需要它。
-
运行midlet
runMidlet 2 HelloWorld
(这里的2就是前面安装的ID,正常的话会有图形窗口出来。)
-
卸载midlet
removeMidlet 2
窗口的宽度和高度可以修改相应的constants.xml文件,在编译时该文件用来产生头文件 midp_constants_data.h。
~~end~~