CLDC及MIDP参考实现的编译 - cwmbecoming的专栏 - CSDNBlog
2008-03-18 21:42
337 查看
导读:
一、编译环境:
ubuntu6.06+jdk1.4.2+gcc 2.95.4
二、编译内容:
CLDC1.1+MIDP2.0 linux版
//JDK_HOME表示你的JDK的安装目录,如 /usr/
//编译命令为:make ALT_BOOTDIR=JDK_HOME KVM_DIR=../../../../j2me_cldc/
三、编译步骤:(根据错误一步步修改,每改一步最好重新make一下)
1、GeneralBase.ioWait()到Waiter.waitForIO()的映射
com.sun.cldc.io.GeneralBase.ioWait()是CLDC1.04里面的,在CLDC1.1里面对应的是com.sun.cldc.io.Waiter.waitForIO(),按照错误提示一个个改吧。
2、将CLDC1.04的com.sun.cldc.io.GeneralBase类copy到1.1相应的目录里,再从1.1里面的java.io.DateInputStream和java.io.DateOutputStream两个类里面将方法 writeFloat、writeDouble、readFloat、readDouble四个方法copy到com.sun.cldc.io.GeneralBase里面,并将GeneralBase的 ioWait()这个native方法删除
3、midp2.0fcs/src/solaris/native/machine_md.h里 添加 #include ,解决不识别global.h里的“jmp_buf”标识符的问题
4、安装Xpm、X11、Xwindow相关的开发库:libX11_dev、libXpm_dev、xlibs_dev,解决找不到 X11/Shell.h 等头文件的问题
5、midp2.0fcs/src/share/native/kvm/midpServices.c的宏 ERROR_THROW 改成 THROW
6、midp2.0fcs/src/share/native/kvm/midpEvents.c:
void Java_com_sun_midp_lcdui_Events_open(void) {
Java_com_sun_cldc_io_j2me_events_PrivateInputStream_open();
}
void Java_com_sun_midp_lcdui_Events_readInt(void) {
Java_com_sun_cldc_io_j2me_events_PrivateInputStream_readInt();
}
void Java_com_sun_midp_lcdui_Events_readUTF(void) {
Java_com_sun_cldc_io_j2me_events_PrivateInputStream_readUTF();
}
改成:
void Java_com_sun_midp_lcdui_Events_open(void) {
//Java_com_sun_cldc_io_j2me_events_PrivateInputStream_open();
}
void Java_com_sun_midp_lcdui_Events_readInt(void) {
//Java_com_sun_cldc_io_j2me_events_PrivateInputStream_readInt();
JVM_EventsReadInt();
}
void Java_com_sun_midp_lcdui_Events_readUTF(void) {
//Java_com_sun_cldc_io_j2me_events_PrivateInputStream_readUTF();
JVM_EventsReadUTF();
}
7、midp2.0fcs/src/solaris/native/machine_md.h的宏 SLEEP_UNTIL 改成 SLEEP_FOR
8、midp2.0fcs/build/share/makefiles/kvm/VM.gmk修改:
vpath %.c $(KVM_DIR)/kvm/VmCommon/src
vpath %.c $(KVM_DIR)/kvm/VmExtra/src
改为:
vpath %.c $(KVM_DIR)/kvm/VmCommon/src
vpath %.c $(KVM_DIR)/kvm/VmExtra/src
vpath %.c $(KVM_DIR)/kvm/VmExtra/src/fp
9、midp2.0fcs/build/share/makefiles/kvm/Defs.gmk修改:
KVM_DEF_SRC += cache.c class.c fields.c frame.c garbage.c global.c /
interpret.c loader.c native.c pool.c thread.c /
nativeCore.c loaderFile.c runtime_md.c events.c /
hashtable.c profiling.c StartJVM.c /
verifier.c verifierUtil.c log.c stackmap.c execute.c /
inflate.c jar.c kni.c
改为:(在后面添加,要注意每行前面的空白不是空格是/t)
KVM_DEF_SRC += cache.c class.c fields.c frame.c garbage.c global.c /
interpret.c loader.c native.c pool.c thread.c /
nativeCore.c loaderFile.c runtime_md.c events.c /
hashtable.c profiling.c StartJVM.c /
verifier.c verifierUtil.c log.c stackmap.c execute.c /
inflate.c jar.c kni.c /
e_rem_pio2.c e_sqrt.c fp_bytecodes.c k_cos.c k_rem_pio2.c k_sin.c k_tan.c /
s_ceil.c s_copysign.c s_cos.c s_fabs.c s_floor.c s_scalbn.c s_sin.c s_tan.c /
w_sqrt.c resource.c fp_math.c
注:有人碰到检验时发生段错误,我没碰到,不知什么原因。
本文转自
http://blog.csdn.net/cwmbecoming/archive/2006/08/26/1123400.aspx
一、编译环境:
ubuntu6.06+jdk1.4.2+gcc 2.95.4
二、编译内容:
CLDC1.1+MIDP2.0 linux版
//JDK_HOME表示你的JDK的安装目录,如 /usr/
//编译命令为:make ALT_BOOTDIR=JDK_HOME KVM_DIR=../../../../j2me_cldc/
三、编译步骤:(根据错误一步步修改,每改一步最好重新make一下)
1、GeneralBase.ioWait()到Waiter.waitForIO()的映射
com.sun.cldc.io.GeneralBase.ioWait()是CLDC1.04里面的,在CLDC1.1里面对应的是com.sun.cldc.io.Waiter.waitForIO(),按照错误提示一个个改吧。
2、将CLDC1.04的com.sun.cldc.io.GeneralBase类copy到1.1相应的目录里,再从1.1里面的java.io.DateInputStream和java.io.DateOutputStream两个类里面将方法 writeFloat、writeDouble、readFloat、readDouble四个方法copy到com.sun.cldc.io.GeneralBase里面,并将GeneralBase的 ioWait()这个native方法删除
3、midp2.0fcs/src/solaris/native/machine_md.h里 添加 #include ,解决不识别global.h里的“jmp_buf”标识符的问题
4、安装Xpm、X11、Xwindow相关的开发库:libX11_dev、libXpm_dev、xlibs_dev,解决找不到 X11/Shell.h 等头文件的问题
5、midp2.0fcs/src/share/native/kvm/midpServices.c的宏 ERROR_THROW 改成 THROW
6、midp2.0fcs/src/share/native/kvm/midpEvents.c:
void Java_com_sun_midp_lcdui_Events_open(void) {
Java_com_sun_cldc_io_j2me_events_PrivateInputStream_open();
}
void Java_com_sun_midp_lcdui_Events_readInt(void) {
Java_com_sun_cldc_io_j2me_events_PrivateInputStream_readInt();
}
void Java_com_sun_midp_lcdui_Events_readUTF(void) {
Java_com_sun_cldc_io_j2me_events_PrivateInputStream_readUTF();
}
改成:
void Java_com_sun_midp_lcdui_Events_open(void) {
//Java_com_sun_cldc_io_j2me_events_PrivateInputStream_open();
}
void Java_com_sun_midp_lcdui_Events_readInt(void) {
//Java_com_sun_cldc_io_j2me_events_PrivateInputStream_readInt();
JVM_EventsReadInt();
}
void Java_com_sun_midp_lcdui_Events_readUTF(void) {
//Java_com_sun_cldc_io_j2me_events_PrivateInputStream_readUTF();
JVM_EventsReadUTF();
}
7、midp2.0fcs/src/solaris/native/machine_md.h的宏 SLEEP_UNTIL 改成 SLEEP_FOR
8、midp2.0fcs/build/share/makefiles/kvm/VM.gmk修改:
vpath %.c $(KVM_DIR)/kvm/VmCommon/src
vpath %.c $(KVM_DIR)/kvm/VmExtra/src
改为:
vpath %.c $(KVM_DIR)/kvm/VmCommon/src
vpath %.c $(KVM_DIR)/kvm/VmExtra/src
vpath %.c $(KVM_DIR)/kvm/VmExtra/src/fp
9、midp2.0fcs/build/share/makefiles/kvm/Defs.gmk修改:
KVM_DEF_SRC += cache.c class.c fields.c frame.c garbage.c global.c /
interpret.c loader.c native.c pool.c thread.c /
nativeCore.c loaderFile.c runtime_md.c events.c /
hashtable.c profiling.c StartJVM.c /
verifier.c verifierUtil.c log.c stackmap.c execute.c /
inflate.c jar.c kni.c
改为:(在后面添加,要注意每行前面的空白不是空格是/t)
KVM_DEF_SRC += cache.c class.c fields.c frame.c garbage.c global.c /
interpret.c loader.c native.c pool.c thread.c /
nativeCore.c loaderFile.c runtime_md.c events.c /
hashtable.c profiling.c StartJVM.c /
verifier.c verifierUtil.c log.c stackmap.c execute.c /
inflate.c jar.c kni.c /
e_rem_pio2.c e_sqrt.c fp_bytecodes.c k_cos.c k_rem_pio2.c k_sin.c k_tan.c /
s_ceil.c s_copysign.c s_cos.c s_fabs.c s_floor.c s_scalbn.c s_sin.c s_tan.c /
w_sqrt.c resource.c fp_math.c
注:有人碰到检验时发生段错误,我没碰到,不知什么原因。
本文转自
http://blog.csdn.net/cwmbecoming/archive/2006/08/26/1123400.aspx
相关文章推荐
- CLDC及MIDP参考实现的编译
- 再收集几个Hash函数的实现 - AlbertLi的专栏 - CSDNBlog
- 编译原理学习导论 - ★★★TINYUE的专栏★★★ - CSDNBlog
- P2P 之 UDP穿透NAT的原理与实现 - abookdog的专栏 - CSDNBlog
- 利用匿名管道实现远程CMD - ToBeroOTer的专栏 - CSDNBlog
- CLDC1.1+MIDP2.0的编译问题
- java实现读取flash的swf文件属性 - zhangjianwxh的专栏 - CSDNBlog
- Asp.net+Xml实现无数据库论坛一点即通 - lshdic的专栏 - CSDNBlog
- IBM Java Jvm GC实现内幕 - SnowFalcon的专栏 - CSDNBlog
- 【原】在vc中实现获取汉字拼音的首字母 - lixiaosan的专栏 - CSDNBlog
- 第一个Makefile文件(可以用来编译前面红黑树的实现程序和测试程序)
- 汇编语言DosBox下在64位上运行实现编译(masm)与调试即debug命令。
- 认证鉴权与API权限控制在微服务架构中的设计与实现 参考文件目录
- 《UNIX 环境高级编程》编译环境的搭建( 运行本专栏代码必读 )
- 字符串匹配(java)实现,普通的匹配和KMP算法 (参考)
- 关于.net编译过后的程序增加功能的一种实现方式_也可以说是.net exe注入,插件机制_开发记录
- 用windows下编译过的eAccelerator for PHP 5.1.6实现php加速的使用方法
- 利用HTTP协议实现Android文件上传至WEB服务器,采用PHP接收文件(参考网上自己实现)
- [愚翁专栏]用C#实现目录拷贝
- Eboot 编译编译器决定中断向量及其实现单一性的原因